jquery:单选按钮输入检查属性未定义
我有以下内容并按此顺序:
<script type="text/javascript">
$(document).ready(function(){
var overwrite = $('#itemList input:radio:checked').val()
alert('value = '+ overwrite);
});
</script>
<body>
<form ..... >
<div id="itemList">
Overwrite?
<input type="radio" value="Yes" class="overWrite" name="overWrite" >Yes
<input type="radio" value="No" class="overWrite" name="overWrite" >No
</div>
</form>
</body>
当它运行时,警报将具有“值=未定义”
但是,如果我将javascript放在div(或正文)之后,警报会返回“值=是”
为什么jquery无法识别页首的无线电类型?如果我创建一个 type = 'hidden',jquery 可以在页面开头读取/识别该值。当 type = 'radio' 时,行为不同
I have the following and in this order:
<script type="text/javascript">
$(document).ready(function(){
var overwrite = $('#itemList input:radio:checked').val()
alert('value = '+ overwrite);
});
</script>
<body>
<form ..... >
<div id="itemList">
Overwrite?
<input type="radio" value="Yes" class="overWrite" name="overWrite" >Yes
<input type="radio" value="No" class="overWrite" name="overWrite" >No
</div>
</form>
</body>
when it runs, the alert will have 'value = undefined'
BUT, if I put the javascript after the div (or body), the alert comes back with 'value = Yes'
Why does jquery not recognize the type radio at beginning of page? If I create a type = 'hidden', jquery can read/recognize the value if at beginning of page. When type = 'radio', behaviour is different
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我对“未定义”也有类似的问题。
当我测试时,
isChecked 是“未定义”
,因此
isChecked 是 true 或 false
I had similar problem with 'undefined'.
when I tested this
isChecked was 'undefined'
and for this
isChecked is true or false
您遇到的问题似乎是页面加载时根本没有检查单选按钮,因此您的 jquery 返回一个 null 对象。
默认情况下,这将检查“否”并返回正确的值。所以你的javascript在技术上是正确的,你只需要检查空值
Problem you're running into seems to be that there are simply no checked radio buttons on page load so your jquery returns a null object.
This will check "no" by default and returns the correct value. So your javascript is technically correct, you just need to check for null values