禁用表单中的输入字段会导致IE 7中的Javascript错误(在Firefox中工作正常)
我有一个表单,其中禁用了jQuery(document).ready(function())上未隐藏的所有输入字段 这是我的密码:禁用表单中的输入字段会导致IE 7中的Javascript错误(在Firefox中工作正常),javascript,jquery,internet-explorer,jquery-plugins,Javascript,Jquery,Internet Explorer,Jquery Plugins,我有一个表单,其中禁用了jQuery(document).ready(function())上未隐藏的所有输入字段 这是我的密码: <!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" xml
<!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>
jQuery(文档).ready(函数()
{
jQuery('div#formBuilderPreviewEnrollmentData input[type!=“hidden”]”)。prop('disabled',true);
});
报名表
下面是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>  </p>
<p> AGE: <input name="AGE" type="text" /></p> <p>  </p>
<p> ADDRESS:<textarea name="ADDRESS"></textarea></p>
</div>
</td>
</tr>
</table>
<br /> <br /> <br />
</div>
</form>
</html>
查看文章-Liferay
/**/
报名表
姓名:&160
年龄:160岁
地址:
我在IE7中遇到了这个JS错误(在Firefox中可以正常工作)试试看
jQuery(文档).ready(函数()
{
jQuery('div#formBuilderPreviewEnrollmentData input[type!=“hidden”]”)。attr(“disabled”,true)
});
只是为了确保,您想要禁用不是type=“hidden”类型的输入,或者想要禁用屏幕上不可见的输入(css样式显示:无)。两者之间有很大区别,jquery选择器与之不同。请发布生成的HTML。上面的代码没有输入。
jQuery('div#formBuilderPreviewEnrollmentData input[type!=“hidden”]”)。prop('disabled','true')
应该是jQuery('div#formBuilderPreviewEnrollmentData input[type!=“hidden”]”)。prop('disabled',true)代码>-您试图将其设置为字符串true
您在哪里包括jQuery文件将HTML生成的源代码添加到我的原始帖子中。Wirey-我确实更改了jQuery中的代码('div#formBuilderPreviewEnrollmentData input[type!=“hidden”])。prop('disabled',true');到jQuery('div#formBuilderPreviewEnrollmentData input[type!=“hidden”]”)。prop('disabled',true);但仍然会犯同样的错误。不,那没用。我想禁用不是“隐藏”类型的输入。我不想禁用屏幕上不可见的输入。通过读取您的错误“无法将焦点移动到控件,因为它不可见、未启用或属于不接受焦点的类型”。我猜有一段代码会自动将焦点应用到某个元素上,因为它被禁用,所以它会给您带来错误。尝试一次禁用一个插件,然后检查错误何时不再出现。您的javascript.js文件中有哪些内容?
<script>
jQuery(document).ready(function()
{
jQuery('div#formBuilderPreviewEnrollmentData input[type!="hidden"]').attr("disabled", true)
});
</script>