Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JQuery更改单选按钮检查状态_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用JQuery更改单选按钮检查状态

Javascript 使用JQuery更改单选按钮检查状态,javascript,jquery,html,Javascript,Jquery,Html,我有两个单选按钮和一个输入文本,当我插入值超过12时,它将自动检查RadioBtn2,否则它将检查RadioBtn1 它可以正常工作,但当我返回到textbox并再次更改值时,直到我刷新页面,它才会工作 $(函数(){ $('#field222')。更改(函数(){ var text_value=$(“#field222”).val(); 如果(文本值>='12'){ $('input:radio[id=“RadioBtn2”]”)。attr('checked','checked'); }否则

我有两个单选按钮和一个输入文本,当我插入值超过12时,它将自动检查
RadioBtn2
,否则它将检查
RadioBtn1

它可以正常工作,但当我返回到textbox并再次更改值时,直到我刷新页面,它才会工作

$(函数(){
$('#field222')。更改(函数(){
var text_value=$(“#field222”).val();
如果(文本值>='12'){
$('input:radio[id=“RadioBtn2”]”)。attr('checked','checked');
}否则{
$('input:radio[id=“RadioBtn1”]”)。attr('checked','checked');
}
})
});

弗斯特

第二,这是因为if statemenet中的条件不正确。在进行大于检查之前,需要将值解析为整数

您还需要将change event更改为keyup,并将property checked设置为true:

var text_value = parseInt($("#field222").val());
if (text_value >= 12) {
  $('input:radio[id="RadioBtn1"]').prop("checked", true);
} else {
  $('input:radio[id="RadioBtn2"]').prop("checked", true);
}
$(函数(){
$('#field222').keyup(函数(){
var text_value=parseInt($(“#field222”).val();
调试器;
如果(文本值>=12){
$('input:radio[id=“RadioBtn1”]')。prop(“选中”,为true);
}否则{
$('input:radio[id=“RadioBtn2”]').prop(“选中”,为真);
}
})
});

弗斯特

第二,这是因为if statemenet中的条件不正确。在进行大于检查之前,需要将值解析为整数

您还需要将change event更改为keyup,并将property checked设置为true:

var text_value = parseInt($("#field222").val());
if (text_value >= 12) {
  $('input:radio[id="RadioBtn1"]').prop("checked", true);
} else {
  $('input:radio[id="RadioBtn2"]').prop("checked", true);
}
$(函数(){
$('#field222').keyup(函数(){
var text_value=parseInt($(“#field222”).val();
调试器;
如果(文本值>=12){
$('input:radio[id=“RadioBtn1”]')。prop(“选中”,为true);
}否则{
$('input:radio[id=“RadioBtn2”]').prop(“选中”,为真);
}
})
});

弗斯特

Secend
解析值和类似的if条件

对于等于或高于(>=)1.6的jQuery版本,请使用:

var text_value = parseInt($("#field222").val());
if (text_value >= 12) {
  $('#RadioBtn1').prop("checked", true);
} else {
  $('#RadioBtn2').prop("checked", true);
}

像这样解析值和if条件

对于等于或高于(>=)1.6的jQuery版本,请使用:

var text_value = parseInt($("#field222").val());
if (text_value >= 12) {
  $('#RadioBtn1').prop("checked", true);
} else {
  $('#RadioBtn2').prop("checked", true);
}

尝试使用按键功能和单选按钮检查道具的代码

$(函数(){
$('#field222').keyup(函数(){
var text_value=parseInt($(“#field222”).val();
如果(文本值>=12){
$('input:radio[id=“RadioBtn1”]')。prop(“选中”,为true);
}否则{
$('input:radio[id=“RadioBtn2”]').prop(“选中”,为真);
}
})
});

弗斯特
后继者攀登

运行代码
使用按键功能和单选按钮检查道具尝试代码

$(函数(){
$('#field222').keyup(函数(){
var text_value=parseInt($(“#field222”).val();
如果(文本值>=12){
$('input:radio[id=“RadioBtn1”]')。prop(“选中”,为true);
}否则{
$('input:radio[id=“RadioBtn2”]').prop(“选中”,为真);
}
})
});

弗斯特
后继者攀登
运行代码
当我返回文本框并再次更改值时,它将不起作用

这是因为当您应该使用
.prop
时,您正在使用
.attr
。基本上,第二个收音机的.attr始终处于设置状态,因为您只能选中一个,所以浏览器会将第二个显示为选中状态

如果使用
.prop
或在再次设置之前使用
.removeAttr
,则可以正常工作

$(函数(){
$('#field222')。更改(函数(){
var text_value=$(“#field222”).val();
如果(文本值>='12'){
$('input:radio[id=“RadioBtn2”]')。prop('checked','checked');
}否则{
$('input:radio[id=“RadioBtn1”]')。prop('checked','checked');
}
})
});

弗斯特
Secend
当我返回文本框并再次更改值时,它将不起作用

这是因为当您应该使用
.prop
时,您正在使用
.attr
。基本上,第二个收音机的.attr始终处于设置状态,因为您只能选中一个,所以浏览器会将第二个显示为选中状态

如果使用
.prop
或在再次设置之前使用
.removeAttr
,则可以正常工作

$(函数(){
$('#field222')。更改(函数(){
var text_value=$(“#field222”).val();
如果(文本值>='12'){
$('input:radio[id=“RadioBtn2”]')。prop('checked','checked');
}否则{
$('input:radio[id=“RadioBtn1”]')。prop('checked','checked');
}
})
});

弗斯特
第二步
$(函数(){
$('#field222').keyup(函数(){
var text_value=$(“#field222”).val();
如果(文本值>=12){
$('RadioBtn2').prop('checked',true);
}否则{
$('RadioBtn1').prop('checked',true);
}
})
});

弗斯特
第二步
$(函数(){
$('#field222').keyup(函数(){
var text_value=$(“#field222”).val();
如果(文本值>=12){
$('RadioBtn2').prop('checked',true);
}否则{
$('RadioBtn1').prop('checked',true);
}
})
});

弗斯特

Secend
在上面的示例中,我看到了一个问题,即您获取整数值并尝试与字符串进行比较

而不是

 if (text_value >= '12') {    
  $('input:radio[id="RadioBtn2"]').attr('checked', 'checked');
} else {
  $('input:radio[id="RadioBtn1"]').attr('checked', 'checked');
}
使用

[见工作演示](
)

在上面的示例中,我看到了一个问题,即您获取整数值并试图与字符串进行比较

而不是

 if (text_value >= '12') {    
  $('input:radio[id="RadioBtn2"]').attr('checked', 'checked');
} else {
  $('input:radio[id="RadioBtn1"]').attr('checked', 'checked');
}
使用

[见工作演示](
)

它仍然是一样的(在我刷新页面之前工作一次),在这种情况下,检查JS中其他地方的控制台错误,因为这工作绝对正常,并且是最好的方法:@RoryMcCrossan此答案被更改为使用
.prop
,在OPs注释后,它不工作(因为它仍然使用
.attr
)。它仍然是一样的(在我刷新页面之前工作一次),在这种情况下,检查JS中其他地方的控制台是否有错误,因为这工作绝对正常,并且是最好的方法:@RoryMcCrossan此答案更改为使用
.prop
,在OPs注释后,它没有工作(因为它仍然使用
.attr
)1.我必须解决这个问题