首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery -表单重置-排除“选择”框

JQuery -表单重置-排除“选择”框
EN

Stack Overflow用户
提问于 2010-01-05 07:08:19
回答 4查看 26.3K关注 0票数 8

全,

我可以使用以下JQuery语法重置我的所有表单元素:

代码语言:javascript
复制
('#myform')[0].reset();

我如何修改它以排除"select box“值的重置?

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-06 02:37:59

致所有人..

重置函数不会将所有内容都设置为'‘(空字符串)

它将重置为它们的初始值。(存储在值属性或选定选项等中。)

如果你想保持默认的重置特性,那么你应该

  1. 获取所有<select>元素
  2. 获取其当前选定值
  3. 将窗体重置为您当前所做的操作
  4. 重新设置选定的

示例:

代码语言:javascript
复制
<script type="text/javascript">
  $(document).ready(
  function(){
   $("#resetbutton").click(
    function(){
     var values = [];
     var selected = $("select").each(
      function(){
       values.push( $(this).val());
       });
     this.form.reset();
     for (i=0;i<selected.length;i++)
      $(selected[i]).val(values[i]);
    });
    }
  );
 </script>
票数 10
EN

Stack Overflow用户

发布于 2010-01-05 07:30:25

这不是jQuery,它是原生javascript。带出实际的DOM元素,因此它与:

代码语言:javascript
复制
document.getElementById('myform').reset();

reset()是一个内置的浏览器实现,可以重置整个表单。如果需要重置单个表单类型,请尝试执行以下操作:

代码语言:javascript
复制
$('#myform :text').val('');

您可以在此处查看所有表单选择器:http://docs.jquery.com/Selectors

票数 6
EN

Stack Overflow用户

发布于 2010-01-05 07:41:40

您可以通过将值设置为空字符串并使用David's answer (或此more complete one)重置复选框来进行假重置。您还可以尝试在重置表单之前存储每个select元素的值,然后在以下情况下恢复这些值:

代码语言:javascript
复制
var myform = $('#myform');
var selects = $('select', myform);

// Store each current value
selects.each(function() {
    $(this).data('previous', $(this).val()); 
});

myform[0].reset();

// Restore the values
selects.each(function() {
    $(this).val($(this).data('previous')); 
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2002957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档