当我从 .这一切都是使用 $.ajax 和 PHP 和 JSON 完成的。到目前为止,大多数HTML控件都可以毫无问题地填充,除了一种特殊类型的控件 - 单选按钮。我正在尝试根据 MySQL 在 JSON 中返回的内容,在我的 HTML 表单中将单选按钮设置为单选按钮组中的检查状态。
在MySQL中,我将单选按钮状态值存储为0
或1
是或否的整数。
数据库中单选按钮状态的列名是 subscribe_status
。单选按钮 HTML 控件的窗体名称subscribe-status
(稍后我将更改该名称以消除混淆)。
目前发生的事情是...无。我不知道为什么。
j查询以更改单选按钮状态:
// property defined?
if(output[0].subscribe_status !== undefined){
// none of radio buttons are checked?
if($('input[name=subscribe-status]').is(':checked') === false) {
// check one based on returned JSON
if(output[0].subscribe_status === 0){
$('input[name=subscribe-status]').filter('[value=0]').prop('checked', true);
}else if(output[0].subscribe_status === 1){
$('input[name=subscribe-status]').filter('[value=1]').prop('checked', true);
}
}
}else{
console.log("Subscribe status property is undefined");
}
我在调用$.ajax
success
执行这些操作,它适用于其他HTML控件,如<text>
,<textarea>
和<select>
类型的输入,但不适用于单选按钮。MySQL 结果作为Object
存储在output
变量中。
网页表单:
<div class="form-group">
<label for="subscribe-status" class="sr-only">Subscribed?:</label>
<label for="subscribe-status">Subscribed?:</label>
<div class="radio-inline">
<label for="subscribe-status"><input type="radio" name="subscribe-status" value="1" />Yes</label>
</div>
<div class="radio-inline">
<label for="subscribe-status"><input type="radio" name="subscribe-status" value="0">No</label>
</div>
</div>
注意:我使用引导程序。
不需要if...else
:
$('input[name="subscribe-status"][value="' + output[0].subscribe_status + '"]').prop('checked', true);
这将选择input
元素name
属性作为subscribe-status
,并将value
作为output[0].subscribe_status
值。
确保您的output
变量(如果 JSON 和它包含 subscribe_status
.
这里有一个错误
$("input[name=subscribe-status]')
您以双引号开头,以单引号结尾。