Javascript 为什么Textarea中的必需属性不起作用?

Javascript 为什么Textarea中的必需属性不起作用?,javascript,jquery,html,Javascript,Jquery,Html,好的,我已经检查了其他问题,但是没有人知道我要问的问题的答案。我只是想说清楚 因此,我使用的是Materializecss和JQuery。以下是我希望在条件下需要的textarea字段 <div class="col s12 input-field" style="margin-bottom:17px;margin-left:-12px;"> <input type="checkbox" id="sslTypeToggle" name="sslType" />

好的,我已经检查了其他问题,但是没有人知道我要问的问题的答案。我只是想说清楚

因此,我使用的是Materializecss和JQuery。以下是我希望在条件下需要的textarea字段

<div class="col s12 input-field" style="margin-bottom:17px;margin-left:-12px;">
    <input type="checkbox" id="sslTypeToggle" name="sslType" />
    <label for="sslTypeToggle">I already have SSL Certificate.</label>
</div>
<div id="customSSL" style="display:none;">
    <div class="col s12 input-field">
        <textarea id="certificate" name="certificate" class="materialize-textarea"></textarea>
        <label for="certificate">Paste Your Certificate</label>
    </div>
    <div class="col s12 input-field">
        <textarea id="privateKey" name="privateKey" class="materialize-textarea"></textarea>
        <label for="privateKey">Paste Your Private Key</label>
    </div>
    <div class="col s12 input-field">
        <textarea id="chain" name="chain" class="materialize-textarea"></textarea>
        <label for="chain">Paste Your Chain File (CA Bundle)</label>
    </div>
</div>
我不知道怎么了。当我使用Inspect元素进行检查时,我可以在中看到所需的属性,但仍然可以提交表单,而无需在字段中输入任何内容!不知道怎么了


更新:没有一个答案有效。也许是因为我是Jquery,也在用Jquery提交表单!现在,我正在使用服务器端验证

您应该指出,如果字段被隐藏,则不会应用所需的属性

因此,您真正需要做的就是在所有文本区域中放置必需的属性,并绑定复选框以显示或隐藏父div:

$('#sslTypeToggle').click( function() {
    this.checked && $('#customSSL').fadeIn('fast') || $('#customSSL').fadeOut('fast');;
});
但是为了回答您的问题,jQuery在使用id选择器选择元素时没有设置必需的属性。作为解决方法,您可以通过索引访问dom节点,并直接设置.required属性

试试这个

$(id)[0].required = checked;
$'SSLTypeTokle'。单击函数{ var checked=此项已检查; [证书,私钥,链].forEachfunctionid { $id[0]。必需=已选中; }; 选中&$'customSSL'.fadeIn'fast'|$'customSSL'.fadeOut'fast';; }; $'SSLTypeTokle'。单击; $'form'.submitfunction{alert'form Submitted';返回false;}; 我已经有SSL证书了。 粘贴您的证书 粘贴您的私钥 粘贴您的链文件CA包
在呈现的HTML中,textarea open和close标记之间是否有空格?介于之间,不!但是,我仍然可以提交表格,而无需在字段中输入任何内容!不能reproduce@guest271314,我想说的是,即使Jquery函数添加了required属性,我也可以提交表单,而无需在textarea中填写任何内容。如果元素中没有设置值,则无法复制提交。此处,当设置了required属性并且在元素处设置了no.value时,不会提交。虽然由于没有预期的模式,所以只需在每个元素中输入一个空格字符作为.value,即可使其有效
$(id)[0].required = checked;