我用Jquery为什么总是得到select 的第一个option的值啊?!

我的代码如下:
var xly=$('#answervalue').var;
$('#warning1but').click(function(){
alert(xly);})
Html代码如下:
我是动态添加的select
$('#warning1 .modal-body').append("<form>      Do you wish to clone train and yard blocks:<select name='selectvalue1' id='answervalue' style='width:70px;height:28px;position:absolute;left:450px'></select></form>");
$('#answervalue').append("<option value='Y'>Yes</option>");
$('#answervalue').append("<option value='N'>No</option>");
我总是alert出第一个option的value或者text,就是得不到第二个的,求高手指点啊!可以直接发我邮箱 linyuanxie@yahoo.com谢谢了,我没有财富值了,不好意思。。。。
因为我是动态添加的,我需要用var=xly这个变量把客户选择的select option传递到其它地方去。

点击按钮后页面提交,select重新加载,这时候获取的select选定的项肯定是第一项
可以采用阻止页面提交的方式,即设置服务器端控件按钮的OnClientClick属性:
<asp:Button id="button1" runat="server" Text="按钮" OnClientClick="return Fun()"></asp:Button>
在Script中:
function Fun(){
alert(xly);
return false;//阻止页面提交
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-12
var xly=$('#answervalue').var; 这是什么意思? - -#
$('#answervalue').find('option').each(function(){
alert(this.value);
});你在click里面这样写试试,他会一个一个弹出来,想一起弹的话 就写方法封装一下

每次选择的话,那行代码应该放到select 的 change事件里面追问

sorry,这个是打字快了,写错了。因为我是动态添加的select。我需要通过var=xly这个变量把客户选择的value传递到另外一个地方去。

追答

var xly;
$("#answervalue").change(function(){
xly = $(this).val();
});
嗯 这样你再按你原来的方法取就好了

//var xly=$('#answervalue').var; 就是把你这行代码改成上面的那些,var xly写在$(function(){})外面哦,注册change事件写在里面

第2个回答  2012-10-12
不明白你要达到什么样的效果 另外 var xly=$('#answervalue').var; 这句写错了 应该是 var xly=$('#answervalue').val(); 吧追问

嗯,这个是我写错了,因为我是动态添加的select option,根据客户每次的选择,我都要通过 var=xly把客户选择的option 传递到后台,可是现在我只能传递第一个option里面的value,其它的却传递不了,在alert里面显示的总是第一个的。

追答

$('#warning1but').click(function(){

var xly=$('#answervalue').var;

alert(xly);})
改成这样 把获取值的语句放到 单击事件里边。

追问

这个也试了,其实这个是个dialog(我用的是twitter bootstrap modal),然后我在里面动态创建了一个select option,这个warning1but也是这个dialog里面的,当我点击这个but 之后这个dialog会自动关闭(bootstrap里面的data-dismiss)并且绑定一个ajax给这个but,ajax里面有一个参数就是这个option value,可是问题是我现在只能传递第一个option value给ajax里的data,我怀疑是不是因为我在点击but后,整个modal就关闭了。所以...

追答

私信吧,代码发我看看,你在追问系统就要扣我分了。

第3个回答  推荐于2017-11-25
没分没什么意思啊,不厚道的人。

var xly=$('#answervalue').var; 这句可以不要
$('#answervalue').live("change",function(){
alert($('#answervalue').val());.
});
动态添加的dom需要用live来搞,直接click不行的。追问

$('#warning1 .modal-body').append(" select name='selectvalue1' id='answervalue'>");
$('#answervalue').append("Yes");
$('#answervalue').append("No");
var xly=$('#answervalue').val();
$('#warning1but').click(function(){
ajax({.....});})
我需要把这个 xly付值到ajax里面的data进行操作,你的意思是说,把click换成live?

追答

一般select的动态获取,不用click而用change,你把我的代码放到你的document ready里面试试先。

本回答被提问者采纳
第4个回答  2012-10-12
给下拉菜单的点击事件改成change事件就行了 没听说过用下拉菜单用点击事件获取值的
相似回答