2012-09-24 22 views
0

我有一種表單禁用所有未隱藏在jQuery(document).ready(function())上的輸入字段在IE 7中禁用導致Javascript錯誤的表單中的輸入字段(在Firefox中正常工作)

這裏是我的代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<div xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:c="http://java.sun.com/jsp/jstl/core" lang="en" xml:lang="en" style="padding-bottom: 8px;"> 
    <script> 
     jQuery(document).ready(function() 
     { 
      jQuery('div#formBuilderPreviewEnrollmentData input[type!="hidden"]').prop('disabled', true); 
     }); 
    </script> 
    <h:form id="previewMarketingProgramForm"> 
     <div class="modal-content"> 
      <br /> <br /> <br /> 
      <div> 
       <h4>Enrollment Form</h4> 
      </div> 
      <table cellpadding="0" cellspacing="0" border="1" width="100%" class="results-table"> 
       <tr> 
        <td> 
         <div id="formBuilderPreviewEnrollmentData"> 
          <h:outputText value="#{previewMarketingProgramBean.enrollmentFormBean.enrollmentFormContent}" escape="false" /> 
         </div> 
        </td> 
       </tr> 
      </table> 
      <br /> <br /> <br /> 
     </div> 
    </h:form> 
</div> 

這裏是JavaScript錯誤:

不能將焦點移到控制,因爲它是無形的,未啓用,或類型的不接受焦點。

請告訴我什麼可能導致此錯誤。我使用jQuery的1.7.2-min.js

這裏是HTML生成的源代碼這種形式供大家參考:

<!DOCTYPE html> 
<html class="ltr" dir="ltr" lang="en-US"> <head> <title>View Article - Liferay</title> 
    <script src="http://xx:8001/vcc-theme/js/jquery-1.7.2.min.js"></script> 
    <script src="http://xx:8001/vcc-theme/js/javascript.js"></script> 
    <script src="http://xx:8001/vcc-theme/js/jquery.tablesorter.min.js"></script> 
    <script src="http://xx:8001/vcc-theme/js/jquery.tablesorter.pager.js"></script> 
    <script src="http://xx:8001/vcc-theme/js/jquery.autocomplete.js"></script> 
    <script src="http://xx:8001/vcc-theme/js/jquery.simplemodal.1.4.2.min.js"></script> 
    <script src="http://xx:8001/vcc-theme/js/jquery.scrollTo.js"></script> 
    <script src="http://xx:8001/vcc-theme/js/ui.datepicker.js"></script> 
    <script> 
    /*<![CDATA[*/jQuery(document).ready(function() 
    { 
     jQuery('div#formBuilderPreviewEnrollmentData input[type!="hidden"]').prop("disabled",true)}); 
    /*]]>*/ 
    </script> 
    <form id="_jpfcpncuivr_A0169_j_id1:previewMarketingProgramForm" name="_jpfcpncuivr_A0169_j_id1:previewMarketingProgramForm" method="post" 
    action="http://xxx/yyy.do"> 
     <div class="modal-content"> 
      <br /> <br /> <br /> 
      <div> <h4>Enrollment Form</h4> </div> 
      <table cellpadding="0" cellspacing="0" border="1" width="100%" class="results-table"> 
       <tr> 
        <td> 
         <div id="formBuilderPreviewEnrollmentData"> 
          <p> NAME: <input class="required" name="NAME" type="text" /></p> <p> &#160;</p> 
          <p> AGE: <input name="AGE" type="text" /></p> <p> &#160;</p> 
          <p> ADDRESS:<textarea name="ADDRESS"></textarea></p> 
         </div> 
        </td> 
       </tr> 
      </table> 
      <br /> <br /> <br /> 
     </div> 
    </form> 
</html> 

我得到這個JS在IE 7中的錯誤(在Firefox正常工作)

+0

請發佈生成的HTML。上面的代碼有零輸入。 – j08691

+2

'jQuery('div#formBuilderPreviewEnrollmentData input [type!=「hidden」]')。prop('disabled','true');'應該是''jQuery('div#formBuilderPreviewEnrollmentData input [type!=「hidden」] ').prop('disabled',true);' - 你試圖將它設置爲一個真正的字符串 –

+0

你在哪裏包括你的jQuery文件 –

回答

0

嘗試this

<script> 
     jQuery(document).ready(function() 
     { 
      jQuery('div#formBuilderPreviewEnrollmentData input[type!="hidden"]').attr("disabled", true) 
     }); 
</script> 

只是爲了確保,要禁用該類型不是=「隱藏」的投入,或者您希望禁用的投入這就是不在SCRE可見(CSS樣式顯示:無)。這兩者之間有很大的區別,而jquery選擇器會有所不同。

+0

沒有幫助。我想禁用不是type =「hidden」的輸入。我不想禁用屏幕上不可見的輸入。 – Sri

+0

此外,我在IE 7中遇到這個錯誤(在Firefox中正常工作) – Sri

+1

通過閱讀您的錯誤「無法將焦點移動到控件上,因爲它是不可見的,未啓用或不接受焦點的類型。」我的猜測是有一些代碼可以自動將焦點應用到元素上,並且由於它被禁用了,它會給你提供錯誤。嘗試一次禁用所有插件,並檢查錯誤不再出現的時間。你有你的javascript.js文件嗎? –

相關問題