我有一个JavaScript函数,当选择了某个选择框的值时,它会动态创建复选框元素。要验证是否选中了复选框,请从PHP发送变量。
例如:var_id=1,2,3,5
。我使用jQuery.inArray
,但我只检查了从五个列表中选中的第一个复选框。
这是创建复选框lis的函数:
function outcheckboxes(_id, _text, var_id) {
(function($){
var topicContainer = jQuery('#classificationss_id');
topicContainer.append(
$('<li />')
.addClass('checkboxclassid')
.append(
$('<input />', {
id: 'classid' + _id,
name: 'classid[]',
value: _id,
type: 'checkbox',
checked: !$.inArray(_id, var_id)
})
)
.append(
$('<label />', {
'for': 'classid' + _id
}).text( _text)
)
)
})(jQuery)
}
我从另一个函数调用函数outcheckboxes
:
function Classifications(obj_parent, obj_this, obj_child, var_id) {
var catalog_id = jQuery("#"+obj_parent).selectedValues()[0];
jQuery("#classificationss_id").children().remove();
jQuery("#"+obj_this).children().remove();
jQuery("#"+obj_child).children().remove();
if(catalog_id>0){
jQuery.ajax({
type : "GET",
url : "../index.php",
data : "option=com_namecat&view=lists&format=raw&list=classifications&id=" + catalog_id,
dataType : "xml",
success : function(xml) {
var _id = "";
var _text = "";
jQuery(xml).find("row").each( function() {
_id = jQuery(this).find("id").text();
_text = jQuery(this).find("text").text();
jQuery("#"+obj_this).addOption(_id, _text );
outcheckboxes(_id,_text,var_id);
});
}
});
}
}
我哪里错了?
答案 0 :(得分:2)
对于一个人来说,你应该像这样编写你的代码:
添加了简写
(function($) {
$('<li />')
.addClass('checkboxclassid')
.append(
$('<input />', {
id: 'classid' + _id,
name: 'classtype[]',
value: _id,
type: 'checkbox',
checked: !$.inArray(_id, var_id)
})
)
.append(
$('<label />', {
'for': 'classid' + _id
}).text( _text)
)
})(jQuery)