重置表单,但DIV中包含的一个输入除外

时间:2016-01-20 17:36:32

标签: javascript jquery

我正在使用此功能在访问者刷新页面时重置表单:

$(document).ready(function () {
  resetForms();
});
function resetForms() {
  document.getElementById('configurator-form').reset();
}

输入是收音机,选择,文字。我需要从重置中排除一个输入(div class =“snap”)。我怎么能这样做?

我可以使用:

.not('.snap input')

某处?我想这样做我需要针对输入而不是整个形式?字段有默认值,所以我不认为我想使用'removeAttr',虽然我可能错了?

修改

我知道它与另一个问题相似,但我无法得到公认的答案。建议采用表单值,然后重置表单,然后将值放回表单中。我试过这个:

$(window).load(function() {
  var snap = $(".snap input").val();
  resetForms();
  $(".snap input").val(snap);
});
function resetForms() {
  document.getElementById('configurator-form').reset(); 
}

...但它还没有恢复“.snap input”字段的值。值得注意的是,snap字段具有随机名称和ID,因此我不能使用getElementById作为示例。感谢您的耐心等待,因为您可能会说我是JQuery的新手。

编辑2

好的,resetForms抛出错误“未定义”。这个版本似乎完美无缺:

$(document).ready(function(){
  var snap = $(".snap").html();
  $('#configurator-form')[0].reset();
  $(".snap").html(snap);
});

1 个答案:

答案 0 :(得分:0)

你的方法应该有效。

你唯一的错误是选择器,

你的JS应该是这样的: (没有选择器中的空白区域)

function resetForms() {
var value = $("input.snap").val();
  document.getElementById('configurator-form').reset();
   $("input.snap").val(value);
}

working fiddle