[英]radio buttons value change based on MySql Data
我正在使用PHP從MySql檢索數據。 一切正常,但不能使用單選按鈕。 我想做的是,隨着文本框值的更改,我也想更改復選框的值,但保留一些復選框的值不變。 以下是代碼:
HTML:
<select id="userDropdown"></select>
<label>Name</label>
<input type="text" id="name" />
<label>Phone</label>
<input type="text" id="phone" />
**<p>
M:<input type="radio" class="flat" name="gender" id="gender" value="M" checked="" required />
F:<input type="radio" class="flat" name="gender" id="gender" value="F" />
</p>**
使用Javascript
//sql data...
var data = [
{username: 'User 1', name: 'Bill', phone: '123-456-789', gender: 'male'},
{username: 'User 2', name: 'John', phone: '123-456-987', gender: 'male'},
{username: 'User 3', name: 'Mary', phone: '123-654-789', gender: 'female'}
];
var dropdown = $('#userDropdown');
dropdown.append('<option value="" >Select User</option>');
for(var i = 0; i < data.length; i++){
var item = data[i];
dropdown.append('<option value="' + item.username + '" >' + item.username + '</option>');
}
$('#userDropdown').change(function(){
var user = this.value;
var dataItem = $.grep(data, function(e){ return e.username == user; });
if(dataItem.length > 0){
$('#phone').val(dataItem[0].phone);
$('#name').val(dataItem[0].name);
$('#gender').val(dataItem[0].gender);
}
});
首先,您需要像這樣更改輸入單選值(使用“ male”和“ female”)以與您的sql數據匹配:
<p>
M:<input type="radio" class="flat" name="gender" id="gender" value="male" checked="" required />
F:<input type="radio" class="flat" name="gender" id="gender" value="female" />
</p>
然后更改此行:
$('#gender').val(dataItem[0].gender);
像這樣 :
$("input[name=gender][value=" + dataItem[0].gender + "]").attr('checked', 'checked');
或類似這樣(自jQuery 1.6起):
$("input[name=gender][value=" + dataItem[0].gender + "]").prop('checked', true);
擺脫重復的ID,並使其變得容易。 HTML5 id規范在這里 。
HTML:
<p>
M:<input type="radio" class="flat" name="gender" id="gender-male" value="M" checked="" required />
F:<input type="radio" class="flat" name="gender" id="gender-female" value="F" />
</p>
使用Javascript:
if(dataItem.length > 0){
$('#phone').val(dataItem[0].phone);
$('#name').val(dataItem[0].name);
$('#gender-'+dataItem[0].gender).prop('checked', true);
}
您可以在此小提琴中看到它的工作原理
這是我要在您的change
函數中執行的操作:
dropdown.change(function () {
var user = this.value;
var dataItem = $.grep(data, function (e) {
return e.username == user;
});
if (dataItem.length > 0) {
var $m_input= $('input[name="gender"][value="M"]');
var $f_input= $('input[name="gender"][value="F"]');
if(dataItem[0].gender === "male"){
$m_input.prop('checked', true);
$f_input.prop('checked', false);
} else {
$m_input.prop('checked', false);
$f_input.prop('checked', true);
}
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.