当使用jQuery将HTML插入IE8中的div时,IE8会删除HTML中的ID标记和某些类名。
这是一个示例。我使用jQuery(1.6.2)
插入此代码var oblSomeoneElseHTML =
'<div id="oblSomeoneElse">' +
' <h2>Enter the name and email of a person you\'d like<br/>to purchase a registration for:</h2>'+
'<form class="voucher_form" id="voucher_form">'+
' <div class="inputrow"><label class="l1">Student Alliance Member #:</label> <input type="text" id="customer_id" name="customer_id" class="oblSomeoneElseCustID"/></div><br>'+
' <div class="inputrow"><label class="l1">Student First Name:<em>*</em></label> <input type="text" id="firstname" name="firstname" class="validate[required] oblSomeoneElseFirstName"/></div><br>'+
' <div class="inputrow"><label class="l1">Student Last Name:<em>*</em></label> <input type="text" id="lastname" name="lastname" class="validate[required] oblSomeoneElseLastName"/></div><br>'+
' <div class="inputrow"><label class="l1">Student Date of Birth:<em>*</em></label> <input type="text" id="DOB" name="DOB" class="validate[required,custom[MMDDYYYY]] oblSomeoneElseDOB"/></div><br>'+
' <div class="inputrow"><label class="l1">Student Email:<em>*</em></label> <input type="text" id="SomeoneElseEmail" name="SomeoneElseEmail" class="validate[required,custom[email] oblSomeoneElseEmail"/></div><br>'+
' <a href="#" class="btn btncenter oblsomeoneelsenext">Next</a>'+
' <div class="spinner"><img src="/images/grey_spinner.gif"></div>'+
'</form>'+
'<img src="/images/blank.gif" width="20" height="20" alt="" border="0" style="position: relative; left: 5px; cursor: pointer;" onclick="clearPrompts();">'+
'</div>';
$('#sm_content .oblcontent').html(oblSomeoneElseHTML);
现在,当我调试DOB输入的验证并在Watch窗口中查看oblSomeoneElseHTML的值时,它会显示ID和正确的类属性。 我正在使用validationEngine插件来验证此表单,并且它需要ID标记才能工作。
<input type="text" id="DOB" name="DOB" class="validate[required,custom[MMDDYYYY]] oblSomeoneElseDOB"/></div>
但是,当我在_getPrompt()函数中调试validateEngine代码时,这个:
var className = field.attr("id").replace(":","_") + "formError";
返回此错误:
'attr(...)' is null or not an object
当我评估字段对象时,我看不到id值,我只看到类oblSomeoneElseDOB。
我对这里发生的事情感到茫然,为什么这只发生在IE8中。 IE7和IE9完美搭配,FF和Chrome以及Opera也能完美运行。
任何人对如何解决这个问题都有任何想法?
答案 0 :(得分:1)
恢复使用已经在html中构建的表单,而不是通过javascript生成,现在一切正常。我们做的事情有点不同,但它的工作就像一个魅力。