下面的代码在加载时抛出警报,因为它检测到第二个单选按钮被选中。但是,如果我选择第一个,然后再次选择第二个,则不会抛出警报..为什么?
<input type="radio" id="s530351a84b2aa_tipo_0" name="radioName" required="required" value="0" >
<input type="radio" id="s530351a84b2aa_tipo_1" name="radioName" required="required" value="1" checked="checked">
$(document).ready(function(){
if($("input[name=radioName]:checked").val() == 1)
{
alert("fajslf");
}
});
答案 0 :(得分:1)
这是因为您没有捕获任何事件,只是检查document load
上是否检查了您的某个辐射。您需要捕获单选按钮的change
事件,如下面的代码所示:
$("input[name=radioName]").on("change", function () {
if($("input[name=radioName]:checked").val() == 1)
{
alert("fajslf");
}
});
答案 1 :(得分:0)
因为您if
document
ready
时就使用了此change
声明。您需要添加$("input[name=radioName]").on("change", function () {
if (this.checked && this.value === "1")
{
alert("fajslf");
}
});
事件处理程序来检测对无线电元素所做的更改。
checkRadio
我的意思是它应该在刚刚加载页面时抛出警报。
在这种情况下,您可以将支票移动到单独的功能中。在这里,我调用了这个函数function checkRadio(elem) {
// If this element has a value of 1 and is checked, alert
if (elem.value === "1" && elem.checked)
alert("fajslf");
}
// On radio change function, call checkRadio
$("input[name=radioName]").on("change", function () {
checkRadio(this);
});
// Call checkRadio on document ready, passing in the radio with value of 1
checkRadio($('input[name=radioName][value=1]')[0]);
,它将一个元素作为唯一的参数:
{{1}}
答案 2 :(得分:0)
$(document).ready(function(){
$('input[name=radioName]').change(function(){
if($(this).val() == 1)
{
alert("fajslf");
}
});
});
答案 3 :(得分:0)
像这样编辑你的代码:
$(".testValue").change(function(){
if($("input[name=radioName]:checked").val() == 1)
{
alert("fajslf");
}
});
并添加您的输入。
答案 4 :(得分:0)
我已更新了您的Fiddle demo。
$(document).ready(function(){
$("input[name=radioName]").click(function() {
if($(this).prop('checked') && $(this).val() == 1)
{
alert("fajslf");
}
});
});
答案 5 :(得分:0)
你可以尝试这种方式
$(document).ready(function () {
$('input[name=radioName]:checked').change(function () {
alert("alert statements...");
});
});