Javascript 使用JQuery更改单选按钮检查状态
我有两个单选按钮和一个输入文本,当我插入值超过12时,它将自动检查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'); }否则
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.我必须解决这个问题