Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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 jQuery代码,每次单击save时都将所有内容设置为默认值_Javascript_Jquery_Jquery Events - Fatal编程技术网

Javascript jQuery代码,每次单击save时都将所有内容设置为默认值

Javascript jQuery代码,每次单击save时都将所有内容设置为默认值,javascript,jquery,jquery-events,Javascript,Jquery,Jquery Events,我有一个带有复选框的表单;当我选中该复选框时,它将禁用另一个表单,该表单是可选的联系人表单,并在第一个表单中设置值,该表单是 主触点到备用触点。但是,当我取消选中它时,请删除“禁用” 并将替代形式中的值设置为默认值。我的代码(我在下面提供)遇到的问题是每次我点击save时,复选框都被取消选中。它将插入的值设置为默认值,默认值为空字符串 $(".AlternativeContactFields").removeAttr("disabled"); $(".AlternativeContactFiel

我有一个带有复选框的表单;当我选中该复选框时,它将禁用另一个表单,该表单是可选的联系人表单,并在第一个表单中设置值,该表单是 主触点到备用触点。但是,当我取消选中它时,请删除“禁用” 并将替代形式中的值设置为默认值。我的代码(我在下面提供)遇到的问题是每次我点击save时,复选框都被取消选中。它将插入的值设置为默认值,默认值为空字符串

$(".AlternativeContactFields").removeAttr("disabled");
$(".AlternativeContactFields").each(function (index, element) {
  if ($(element).is("input")) {
    $(element).val("");
  } else if ($(element).is("select")) {
    $(element).val(1);
  }
});

我怎样才能解决这个问题?

我想这就是你想要的

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
  $('#save').click(function() {
    $(".AlternativeContactFields").removeAttr("disabled");
    $(".AlternativeContactFields").each(function (index, element) {
      if ($(element).is("input")) {
        // read the type attribute.
        var type = $(element).attr('type');
        switch(type) {
          case 'checkbox':
          case 'radio':
            // uncheck box
            $(element).prop('checked', false);
            break;
          case 'text':
          default:
            $(element).val("");
            break;
        }  
      } else if ($(element).is("select")) {
        $(element).val(1);
      }
    });
  });
});
</script>
<input type="button" value="Save" id="save"/><br/>
<input disabled="disabled" type="checkbox" checked="checked" value="My checkbox 1" class="AlternativeContactFields"/>My checkbox 1<br/>
<input disabled="disabled" type="checkbox" value="My checkbox 2" class="AlternativeContactFields"/>My checkbox 2<br/>
<input disabled="disabled" type="text" value="My textbox value 1" class="AlternativeContactFields"/><br/>
<input disabled="disabled" type="text" value="My textbox value 2" class="AlternativeContactFields"/><br/>
<select disabled="disabled" class="AlternativeContactFields">
  <option value="0">my Option 0</option>
  <option value="1">my Option 1</option>
  <option value="2">my Option 2</option>
</select>

$(文档).ready(函数(){
$(“#保存”)。单击(函数(){
$(“.AlternativeContactFields”).removeAttr(“已禁用”);
$(“.AlternativeContactFields”)。每个(函数(索引,元素){
if($(元素).is(“输入”)){
//读取type属性。
变量类型=$(元素).attr('type');
开关(类型){
案例“复选框”:
“无线电”案例:
//取消复选框
$(元素).prop('checked',false);
打破
案例“文本”:
违约:
$(元素).val(“”);
打破
}  
}else if($(元素).is(“选择”)){
$(元素).val(1);
}
});
});
});

我的复选框1
我的复选框2


我的选择0 我的选择1 我的选择2
请删除C#标记。如果我理解这个问题,问题是复选框也是一个输入元素。因此,当您擦除文本输入元素的值时,它也会擦除radio/CheckBox的标题。您可以调用表单上的
reset()
,将其还原为原始值。