我有一个onclick事件:
<button class="editbutton" onClick='edit(this, "<?php echo $this->result[$i]["ctype"]; ?>", "<?php echo htmlentities($this->result[$i]["name"], ENT_QUOTES); ?>", "<?php echo $quality; ?>", "<?php echo $this->result_cameras[$i]["camera_hash"]; ?>", "<?php echo $status; ?>",...)'></button>
我将这些传递给jquery并构建一个表单(在模态对话框中):
var edit = function(t, ctype, name, quality, hash, status, ...)
{
var $formDiv = jQuery("#editform");
$formDiv.empty();
var $editForm = jQuery("<form id='EditForm' method='post'></form>");
....//more code on building form
var $selectStatus = jQuery("<select id='Status' name='camera_status'></select>");
var enabledHtml = "<option value='ENABLED'>ON</option>";
var disabledHtml = "<option value='DISABLED'>OFF</option>";
var $statusEnabled = jQuery(enabledHtml);
var $statusDisabled = jQuery(disabledHtml);
// create opt group
var $optgroup = jQuery("<optgroup label='Info'>");
if(info.length > 0){
for (i=0; i<info.length; i++) {
var $op = jQuery("<option value='" + info[i].info_hash + "'>" + info[i].info_name + "</option>");
$optgroup.append($op);
}
}else{
var op = "<option value='none' disabled>None</option>";
$optgroup.append(op);
}
info
的位置:
var info = [{"info_name":"test","info_hash":"3029688965"},{"info_name":"gggg","info_hash":"175360653"},...]
这很有效。我的问题是选择并进行默认选择。我传入变量status
来帮助解决这个问题。它的值为0(关闭),1(打开)或者在optgroup下面的字符串名称。
因此,此代码适用于开/关属性:
if (status == 1) {
$statusEnabled.prop("selected", "selected");
}
else if (status == 0){
$statusDisabled.prop("selected", "selected");
}
else {
console.log(status);
}
$selectStatus.append($statusEnabled, $statusDisabled, $optgroup);
在else块中,console.log显示正确的值。我想我只是想知道如何在这种情况下指定一个“选定的”值?
答案 0 :(得分:0)
您应该浏览<option>
个标签,如果其中一个与名称匹配,请指定selected
属性:
if (status == 1) {
$statusEnabled.prop("selected", "selected");
}
else if (status == 0){
$statusDisabled.prop("selected", "selected");
}
else {
$selectStatus.each(function() {
if($(this).html() == status)
$(this).prop("selected", true);
});
}
修改强>
您可以在创建选项时设置所选属性:
for (i=0; i<info.length; i++) {
var $op = jQuery("<option value='" + info[i].info_hash + "'>" + info[i].info_name + "</option>");
if(info[i].info_name == status)
$op.prop("selected", true);
$optgroup.append($op);
}