当我从a中选择一个值时,需要自动填充我的一个表单。这都是使用$ .ajax和PHP和JSON完成的。到目前为止,除了一种特殊类型的控件 - 单选按钮外,大多数HTML控件都没有任何问题。 我正在尝试根据MySQL在JSON中返回的内容,在单选按钮组中将我的HTML表单中的单选按钮设置为检查状态。
在MySQL中,我将单选按钮状态值存储为0
或1
整数表示是或否。
数据库中单选按钮状态的列名是subscribe_status
。单选按钮HTML控件的表单名称是subscribe-status
(我将更改它以便以后删除混淆)。
此刻发生的事情是......什么都没有。我不确定为什么。
jQuery更改单选按钮状态:
// 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");
}
我在success
$.ajax
调用内执行这些操作,它适用于其他HTML控件,例如<text>
,<textarea>
和<select>
类型的输入,但不是单选按钮。 MySQL结果作为output
存储在Object
变量中。
HTML表单:
<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>
注意:我使用Bootstrap。
答案 0 :(得分:3)
无需if...else
:
$('input[name="subscribe-status"][value="' + output[0].subscribe_status + '"]').prop('checked', true);
这会选择input
元素,name
属性为subscribe-status
,value
为output[0].subscribe_status
值。
如果 JSON 并且它包含output
,请确保您的subscribe_status
变量。
答案 1 :(得分:1)
你这里有错误
$("input[name=subscribe-status]')
你从双引号开始,以单一结尾。