Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在“是或否”条件下禁用使用Javascript的表单_Javascript_Forms_Disabled Input - Fatal编程技术网

在“是或否”条件下禁用使用Javascript的表单

在“是或否”条件下禁用使用Javascript的表单,javascript,forms,disabled-input,Javascript,Forms,Disabled Input,我有一个单选按钮式的带是或否问题的表格,以表明以前是否填写并提交过此类表格。如果答案是“是”,我想使用Javascript禁用此表单,每个用户的答案都是“是” 是表示该表格之前已提交,因此不允许重新填写该表格。这是为了尝试停止双重或多重提交 任何建议都将不胜感激 Dawn26我可能会使用附加到Yes单选按钮的onchange函数来隐藏表单或将其从页面中完全删除。您的标记可能与此类似: <form id="formId"> <input type="radio" valu

我有一个单选按钮式的带是或否问题的表格,以表明以前是否填写并提交过此类表格。如果答案是“是”,我想使用Javascript禁用此表单,每个用户的答案都是“是”

是表示该表格之前已提交,因此不允许重新填写该表格。这是为了尝试停止双重或多重提交

任何建议都将不胜感激


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>