我正在使用jquery-1.6和jquery-validation-1.9.0,jquery.form.2.36,jquery-ui-1.8.2插件。
我复制了以下代码块,其中可以包含一对多按钮,这些按钮按元素名称'corsdt'分组
<div class="container-wrapper">
....
<div class="rght-container">
<input type="radio" name="corsdt" id="rad_corsdt_1" class="radio ui-widget-content ui-corner-all" value="course_title=Fundamentals%20for%20New%20Managers&course_code=341.564&mercref=341.564-12-HI-03" />
</div>
</div>
并使用jquery
将其附加到表单var $clone = $('.container-wrapper').clone();
var crsrads = $clone.find("input:radio[name=corsdt]");
var no_of_rad = crsrads.length + 1; //find total no. of orig radio inputs, incr ids to avoid duplicate ids
crsrads.each(function(index){
var i = index + no_of_rad;
$(this).attr({id: 'rad_corsdt_' + i, name: 'corsdt1'});
});
$('#dialog-dtwrapper').append($clone);
这将附加到表单中的目标div标记,如预期的那样
<div id="dialog-dtwrapper">
<div class="container-wrapper">
....
<div class="rght-container"><input id="rad_corsdt_2" class="radio ui-widget-content ui-corner-all ez-hide valid" type="radio" value="course_title=Fundamentals%20for%20New%20Managers&course_code=341.564&mercref=341.564-12-HI-03" name="corsdt1">
...
</div>
</div>
</div>
然而,当我尝试验证表单时,使用验证插件,我得到一个,'0'为null或不是对象,IE7中的错误。
var aform = $("#formName").validate({
....
rules: {
....
corsdt1 : "required",
....
},
messages: {
....
corsdt1 : "please select a course date",
},
submitHandler: function(form) {....
我认为这与克隆方法有关,在某些情况下会导致IE7中的错误。是否有解决方法?
因为这在Firefox,IE8和&铬。
干杯。
答案 0 :(得分:0)
试试这个。
var html = $('.container-wrapper').get(0).cloneNode(true); // Clone HTML using DOM API
var $clone = $(html);
之前我遇到过这个问题,就这样解决了。
答案 1 :(得分:0)
var crsrads = $clone.find("input:radio[name=corsdt]");
应该是
var crsrads = $clone.find('input:radio[name="corsdt"]');