IE8剥离ID属性,呵呵?

时间:2011-09-08 14:35:01

标签: jquery internet-explorer attributes

当使用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也能完美运行。

任何人对如何解决这个问题都有任何想法?

1 个答案:

答案 0 :(得分:1)

恢复使用已经在html中构建的表单,而不是通过javascript生成,现在一切正常。我们做的事情有点不同,但它的工作就像一个魅力。