我在运行时使用jQuery / jQuery Mobile检查/选择radiobuttons,复选框和列表样式时遇到问题。
基本上我有一个复选框,单选按钮和选择菜单的列表,我想要做的是从数据库中获取值,并从复选框/单选按钮组或选择菜单中选择/勾选正确的项目。
这是我尝试过的简单设置,但它不起作用。
HTML:
<fieldset data-role="controlgroup">
<input type="radio" name="option_radio" id="option_radio_1" value="1" />
<label for="option_radio_1">Option 1</label>
<input type="radio" name="option_radio" id="option_radio_2" value="2" />
<label for="option_radio_2">Option 2</label>
</fieldset>
<fieldset data-role="controlgroup">
<input type="checkbox" name="option_checkbox" id="option_checkbox_1" value="1" />
<label for="option_checkbox_1">Option 1</label>
<input type="checkbox" name="option_checkbox2" id="option_checkbox_2" value="2" />
<label for="option_checkbox_2">Option 2</label>
<input type="checkbox" name="option_checkbox3" id="option_checkbox_3" value="3" />
<label for="option_checkbox_3">Option 3</label>
</fieldset>
<select name="option_list" id="option_list">
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
<option value="50">50</option>
<option value="60">60</option>
<option value="70">70</option>
</select>
JS:
$("#option_checkbox_1").val(option_id);
$("#option_list").val(optionlist_id);
$('input:radio[name=gender]:checked').val(gender_id);
我尝试将数据库中的值(例如1/2/3/4等)从数据库直接传递给元素。
谁能告诉我应该怎么做?
答案 0 :(得分:3)
检查或给出值:
$('#option_checkbox_1').attr('checked', 'checked');
$('input:radio[id=option_radio_1]').attr('checked', 'checked');
$("#option_list").val(50);
并取消检查(完全删除属性)
$('#option_checkbox_1').removeAttr('checked');
$('input:radio[name=gender]:checked').removeAttr('checked');
我认为这就是你想要的
$('#option_checkbox_'+option_id).attr('checked', 'checked');
$('input:radio[id='+gender_id+']').attr('checked', 'checked');
$("#option_list").val(optionlist_id);
答案 1 :(得分:1)
$("#option_checkbox_1").val(option_id);
这用于将值赋给元素。
您可以Element with attribute value selector
找到元素。
var valueFromDB = "1";
$("input[type='radio']['"+valueFromDB+"']").attr("checked","true");
$("input[type="checkbox"]['"+valueFromDB+"']").attr("checked","true");
$("#option_list option[value="20"]").attr("selected","true");
另一点。
id
是元素的唯一。您不能将id
用于多个元素。
答案 2 :(得分:1)
选择具有特定值的input
元素:
$('input[value=' + valueFromDatabase + ']');
然后检查/选择该元素:
$('input[value=' + valueFromDatabase + ']').prop('checked', true);
当然,这可以与其他选择器(例如:radio
或:checkbox
)结合使用:
$('input:radio[value=' + valueFromDatabase + ']').prop('checked', true);
如果数据库中的值包含任何空格,则必须在选择器中引用,并给出:
$('input[value="' + valueFromDatabase + '"]');
(注意`valueFromDatabase周围的"
个字符。)
答案 3 :(得分:0)
JS将设置元素的值,它不会检查它们。你想要做的是使用if语句来查看radio / checkbox / select的值是否与你从数据库中提取的字符串的值相匹配。如果是,那么你想要设置要检查/选择的属性,如此
// checkboxes/radios
$(this).attr('checked','checked')
// options
$(this).attr('selected','selected')
其中$(this)=输入或选项