我有一个绑定到JQuery Form(AjaxForm)对象的表单。
在表格中我有一些单选按钮:
<input type="radio" id="dialog_stranka_dodajuredi_tip_fizicna" name="dialog_stranka_dodajuredi_tip" value="2" /> Selection 2
<input type="radio" id="dialog_stranka_dodajuredi_tip_pravna" name="dialog_stranka_dodajuredi_tip" value="1" /> Selection 1
现在,当表单通过AJAX发布时,参数“dialog_stranka_dodajuredi_tip”为空。它根本没有值 - 无论选择了哪个单选按钮。
我也试过绑定这样的更改事件:
$('input[name=dialog_stranka_dodajuredi_tip]').bind('change', function(){
switch (parseInt($('input[name=dialog_stranka_dodajuredi_tip]:checked').val())) {
case 2:
alert('number 2 selected');
break;
case 1:
alert('number 1 selected');
break;
}
});
但是val属性根本没有任何价值。警报框不会弹出。
我已经使用firebug来调试和设置监视,这是结果(值):
$('input[name=dialog_stranka_dodajuredi_tip]').val() -> value: ""
$('input[name=dialog_stranka_dodajuredi_tip]:checked').attr('id') --> value: "dialog_stranka_dodajuredi_tip_pravna"
$('input[name=dialog_stranka_dodajuredi_tip]:checked').attr('name') --> value: "dialog_stranka_dodajuredi_tip"
$('input[name=dialog_stranka_dodajuredi_tip]:checked').val() --> value: ""
正如您所看到的,尽管在标记中设置了值,但val()根本不会返回值。我很笨,任何想法?
答案 0 :(得分:1)
在名称周围添加引号'
为我解决了这个问题,
喜欢:
switch (parseInt($("input[name='dialog_stranka_dodajuredi_tip']:checked").val())) { ...
答案 1 :(得分:0)
这对我来说毫无瑕疵。
复制/粘贴以下代码
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
function a() {
alert($('input[name=dialog_stranka_dodajuredi_tip]:checked').val());
return false;
}
</script>
</head>
<body>
<form action="">
<input type="radio" id="dialog_stranka_dodajuredi_tip_fizicna" name="dialog_stranka_dodajuredi_tip" value="2"/> Selection 2
<br>
<input type="radio" id="dialog_stranka_dodajuredi_tip_pravna" name="dialog_stranka_dodajuredi_tip" value="1" /> Selection 1
</form>
<a href="#" onclick="javascript:a();">Check radio buttons</a>
</body>
</html>
到此页面W3School Tryit,亲身体验