【发布时间】:2017-06-03 03:01:29
【问题描述】:
我的代码中有单选按钮,并希望它们在状态更改时像网页上的其他变量一样更新
HTML
<TD><Input id="radOn2" name="Nb_var86" type= "radio" Value=1 onClick="this.form.submit();">ON</TD>
<TD><Input id="radOff2" name="Nb_var86" type= "radio" Value=0 onClick="this.form.submit();">OFF</TD>
JavaScript
var timeout;
function bloop() {
$.ajax({
url: "/ajax.html",
success:function(result){
var array=result.split(',');
for(i=0;i<array.length;i++){
$("input[name='Nb_var"+array[i].substring(0,array[i].indexOf(':'))+"']").val(array[i].substring(array[i].indexOf(':')+1));
}
}
});
timeout = window.setTimeout(function(){bloop()}, 4000);
}
对于我的一生,我无法弄清楚为什么单选按钮不会更新。任何帮助表示赞赏。
我尝试了堆栈溢出中的其他示例,但它们似乎不起作用。我的 bloop 函数会更新网页上的变量列表,但除非您刷新页面,否则单选按钮(列表中的变量)不会更新。我想让 jquery 更新单选按钮状态而不刷新页面
这是我尝试过的: 我可以在页面上看到 var,所以我知道服务器和 ajax 正在更新 var:
<TD><Input id="radOn2" name="Nb_var86" type= "radio" Value=1 onClick="this.form.submit();">ON</TD>
<TD><Input id="radOff2" name="Nb_var86" type= "radio" Value=0 onClick="this.form.submit();">OFF<input readonly name= "Nb_var86"style="font-size: 105%;border:none;" value ="<Nb_var86>" size = 2></TD>
然后在脚本中我尝试了所有这些,但实际上翻转单选按钮没有运气:
if($("input[name=Nb_var86]:checked").val()==1){
$('input:radio[name=Nb_var86][id=radon2]').click();
//$("#radon2").prop("checked", "checked");
//$('input:radio[name = Nb_var86]').val(['radon2']);
//$('#radon2').attr('checked', 'checked');
//$("input[name = Nb_var86] [id = radon2]").prop('checked', true);
//$("#radoff2").prop("checked", false).val()==0;
//$("#radon2").prop("checked", true).val()==1;
我错过了什么吗?
【问题讨论】:
-
与问题无关,但对于 HTML 标签 (
<TD>/<Input>) 和属性(Value/onClick) 使用小写字母是惯例 -
你不想改变它的值,而是它是否被选中。