在“是或否”条件下禁用使用Javascript的表单
我有一个单选按钮式的带是或否问题的表格,以表明以前是否填写并提交过此类表格。如果答案是“是”,我想使用Javascript禁用此表单,每个用户的答案都是“是” 是表示该表格之前已提交,因此不允许重新填写该表格。这是为了尝试停止双重或多重提交 任何建议都将不胜感激在“是或否”条件下禁用使用Javascript的表单,javascript,forms,disabled-input,Javascript,Forms,Disabled Input,我有一个单选按钮式的带是或否问题的表格,以表明以前是否填写并提交过此类表格。如果答案是“是”,我想使用Javascript禁用此表单,每个用户的答案都是“是” 是表示该表格之前已提交,因此不允许重新填写该表格。这是为了尝试停止双重或多重提交 任何建议都将不胜感激 Dawn26我可能会使用附加到Yes单选按钮的onchange函数来隐藏表单或将其从页面中完全删除。您的标记可能与此类似: <form id="formId"> <input type="radio" valu
Dawn26我可能会使用附加到Yes单选按钮的onchange函数来隐藏表单或将其从页面中完全删除。您的标记可能与此类似:
<form id="formId">
<input type="radio" value="Yes" onchange="YourClass.disableForm()"/>
...
</form>
您可以创建一个函数,根据是否选中复选框来禁用除复选框之外的所有表单控件。这不会停止重复提交,因此您仍然需要在服务器上处理。如果愿意,您也可以隐藏控件,但仅禁用它们可能就足够了 您可能还想发布一条消息来解释为什么表单控件被禁用
function checkDisabled(target) {
var form = target.form;
var elements = form.elements;
var disable = target.checked;
// Check every control in the form
for (var i=0, iLen=elements.length; i<iLen; i++) {
// Don't disable the checkbox
if (elements[i] != target) {
// Disable (or not) based on whether checkbox is checked
elements[i].disabled = disable;
}
}
}
一些测试标记:
<label for="dateTime">Date and time<input id="dateTime" name="dateTime">
<br>
<span class="screenTip">YYYY-MM-DD hh:mm:ss</span>
</label>
<form>
Have you submitted this form before?
<input type="checkbox" name="hasBeenSubmitted" value="1" onclick="checkDisabled(this)">
<br>
Foo: <input type="text" name="foo">
<br>
Bar: <input type="text" name="bar">
<br>
<input type="submit">
</form>
不确定你是否能通过这种方式实现既定目标。。。如果他们已经提交了申请,为什么还要来申请呢?无论如何,在“是/否”问题的更改事件上放置一个侦听器,然后切换显示CSS。试一试,如果你有问题,发布你的代码。表单没有禁用属性,你只能禁用单个控件。所以你可以这样做,或者隐藏表单,但是如果你隐藏了它,如何取消选中按钮呢?。无论哪种方式,您都应该在服务器上管理重复提交。
<label for="dateTime">Date and time<input id="dateTime" name="dateTime">
<br>
<span class="screenTip">YYYY-MM-DD hh:mm:ss</span>
</label>
<form>
Have you submitted this form before?
<input type="checkbox" name="hasBeenSubmitted" value="1" onclick="checkDisabled(this)">
<br>
Foo: <input type="text" name="foo">
<br>
Bar: <input type="text" name="bar">
<br>
<input type="submit">
</form>