0

我在使用 jQuery/jQuery Mobile 在运行时检查/选择单选按钮、复选框和列表样式时遇到问题。

基本上我有一个复选框、单选按钮和选择菜单列表,我想做的是从数据库中获取值并从复选框/单选按钮组或选择菜单中选择/勾选正确的项目。

这是我尝试过的简单设置,但它不起作用。

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 等)从数据库直接传递给元素。

谁能告诉我这应该怎么做?

4

4 回答 4

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);
于 2012-12-29T16:42:52.040 回答
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用于多个元素。

于 2012-12-29T16:48:04.047 回答
1

要选择input具有特定值的元素:

$('input[value=' + valueFromDatabase + ']');

然后检查/选择该元素:

$('input[value=' + valueFromDatabase + ']').prop('checked', true);

当然,这可以与其他选择器(例如:radio, 或:checkbox)结合使用:

$('input:radio[value=' + valueFromDatabase + ']').prop('checked', true);

但是,如果数据库中的值包含任何空格,则必须在选择器中引用该值,给出:

$('input[value="' + valueFromDatabase + '"]');

(注意"`valueFromDatabase 周围的字符。)

于 2012-12-29T16:51:54.500 回答
0

该 JS 将设置元素的值,它不会检查它们。您要做的是使用 if 语句来查看 radio/checkbox/select 的值是否与您从数据库中提取的字符串的值匹配。如果是这样,那么您想设置要检查/选择的属性,如下所示

// checkboxes/radios
$(this).attr('checked','checked')

// options
$(this).attr('selected','selected')

其中 $(this) = 输入或选项

于 2012-12-29T16:45:35.280 回答