JQuery - 表单重置 - 排除“选择”盒子

发布于 2024-08-16 18:46:39 字数 133 浏览 6 评论 0原文

所有,

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

('#myform')[0].reset();

如何修改它以排除“选择框”值的重置?

谢谢

All,

I can reset all my form elements using the following JQuery Syntax:

('#myform')[0].reset();

How can I modify this to exclude the reset of "select box" values?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

绻影浮沉 2024-08-23 18:46:39

对于每个人..

重置功能不会将所有内容设置为“”(空字符串),

它会重置为其初始值..(存储在值属性中,或选定的选项等..)

如果您想保持默认的重置功能,那么您应该

  1. 让所有
  2. 获取其当前选定的值
  3. 重置表单,就像您当前
  4. 重置所选

示例一样:

<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>

To everyone..

the reset function does not set everything to '' (empty string)

it reset to their initial values .. (stored in the value attribute, or selected option etc..)

If you want to maintain the default reset features then you should

  1. get all the <select> elements
  2. get their currently selected values
  3. reset the form as you currently do
  4. re-set the selected

example:

<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>
幸福还没到 2024-08-23 18:46:39

那不是 jQuery,而是原生 javascript。 [0] 显示实际的 DOM 元素,因此它与以下内容相同:

document.getElementById('myform').reset();

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

$('#myform :text').val('');

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

That's not jQuery, it's native javascript. [0] brings out the actual DOM element, so it's the same as:

document.getElementById('myform').reset();

reset() is a built-in browser implementation that resets the entire form. If you need to reset individual form types, try something like:

$('#myform :text').val('');

You can see all form selectors here: http://docs.jquery.com/Selectors

萌︼了一个春 2024-08-23 18:46:39

您可以通过将值设置为空字符串并使用 David 的答案重置复选框来进行假重置(或此 更完整的)。您还可以尝试在重置表单之前存储每个选择元素的值,然后在之后恢复值:

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')); 
});

You can do a fake reset by setting the values to an empty string and resetting the checkboxes using David's answer (or this more complete one). You could also try storing each select element's value before resetting the form and then restore the values after:

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')); 
});
素衣风尘叹 2024-08-23 18:46:39

无论出于何种原因,大卫的正确答案错误了我的 Google Chrome js。它说:

Uncaught TypeError: Property 'reset' of object # is not a function

...所以我决定尝试一个稍微不同的解决方案:

  • 给本机浏览器重置按钮属性“隐藏”并设置“id” ":

  • 通过单击链接在重置按钮上启动 JQuery“click”事件:

重置

For whatever reason, David's right-on answer error'd my Google Chrome js. It's saying:

Uncaught TypeError: Property 'reset' of object # is not a function

...so I decided to try a slightly different solution:

  • Give native browser reset buttons attributes "hidden" and set "id":

<input id="resetbutton" type="reset" style="visibility:hidden;" name="reset" value="reset" />

  • Initiate JQuery "click" event on reset button from clicking link:

<a href="#" onclick="$('#resetbutton').click();">Reset</a>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文