如何使用 jQuery 选择的插件重置表单?

发布于 2024-12-12 08:01:31 字数 248 浏览 3 评论 0 原文

我在表单中有一堆 select 元素,我正在使用 Jquery Chosen 插件< /a>.如何重置表格?以下不起作用:

<input type="reset" />

I have a bunch of select elements in a form with which I am using the Jquery Chosen plugin. How can I reset the form? The following does not work:

<input type="reset" />

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

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

发布评论

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

评论(10

清浅ˋ旧时光 2024-12-19 08:01:31

您需要重置字段的值,然后在输入上触发 liszt:updated 事件以使其更新,我在这里做了一个工作示例。

http://jsfiddle.net/VSpa3/3/

$(".chzn-select").chosen();
$('a').click(function(){
    $(".chzn-select").val('').trigger("liszt:updated");
});​

自发布以来选择的 v1.0 触发器现在称为“选择:更新”。使用此新版本的任何人都需要使用以下命令触发更新

$(".chosen-select").val('').trigger("chosen:updated");

You'll need to reset the value of the field, then trigger the liszt:updated event on the input to get it to update, ive made a fiddle with a working example here.

http://jsfiddle.net/VSpa3/3/

$(".chzn-select").chosen();
$('a').click(function(){
    $(".chzn-select").val('').trigger("liszt:updated");
});​

Since the release of chosen v1.0 the trigger is now called 'chosen:updated'. Anyone using this new version needs to trigger the update using

$(".chosen-select").val('').trigger("chosen:updated");
诗酒趁年少 2024-12-19 08:01:31

自 selected v1.0 发布以来,触发器现在称为“chosen:updated”。使用此新版本的任何人都需要使用以下命令触发更新

$(".chosen-select").val('').trigger("chosen:updated");

Since the release of chosen v1.0 the trigger is now called 'chosen:updated'. Anyone using this new version needs to trigger the update using

$(".chosen-select").val('').trigger("chosen:updated");
沒落の蓅哖 2024-12-19 08:01:31

你可以试试这个:

$('select').chosen('destroy');  

$('select').prop("selectedIndex", -1);   
$('select').chosen();

You could try this:

$('select').chosen('destroy');  

$('select').prop("selectedIndex", -1);   
$('select').chosen();
兮颜 2024-12-19 08:01:31

为了自然地重置工作,请使用以下命令:

$("input[type='reset'], button[type='reset']").click(function(e){
    e.preventDefault();

    var form = $(this).closest('form').get(0);
    form.reset();

    $(form).find('select').each(function(i, v) {
        $(v).trigger('chosen:updated');
    });
}

in order to have reset working naturally use this:

$("input[type='reset'], button[type='reset']").click(function(e){
    e.preventDefault();

    var form = $(this).closest('form').get(0);
    form.reset();

    $(form).find('select').each(function(i, v) {
        $(v).trigger('chosen:updated');
    });
}
一生独一 2024-12-19 08:01:31

之前的选项都不适合我。我必须像老派那样做,甚至使用一些本机 JavaScript,代码如下:

$('#dllSample option').each(function(){
     $(this)[0].selected = false;   
});
$("#dllSample").trigger("chosen:updated");

None of the previous options work for me. I had to do it like the old school, even using some native javascript, here is the code:

$('#dllSample option').each(function(){
     $(this)[0].selected = false;   
});
$("#dllSample").trigger("chosen:updated");
我只土不豪 2024-12-19 08:01:31
$("#Your_id").trigger("chosen:updated");

这对我有用

$("#Your_id").trigger("chosen:updated");

This worked for me

三生殊途 2024-12-19 08:01:31

对于更轻松的方法...假设您的输入位于

标签内:

<form>
    <!-- your selects go here and any other input fields -->
    <input type="reset" value="Reset"> 
</form>

这就是我要做的:

$("input[type='reset'], button[type='reset']").click(function(e){
      setTimeout(function(){ $("select").trigger("chosen:updated"); }, 50);
});

请参阅 在这里摆弄

For a more hassle free approach...assuming your inputs are inside <form> tags:

<form>
    <!-- your selects go here and any other input fields -->
    <input type="reset" value="Reset"> 
</form>

This is what I would do:

$("input[type='reset'], button[type='reset']").click(function(e){
      setTimeout(function(){ $("select").trigger("chosen:updated"); }, 50);
});

See fiddle here.

冰雪之触 2024-12-19 08:01:31

这里的答案都不适合我。
我使用带有 multiple 属性的选择选择。
普通的提交表单按钮也不起作用。
所以我只是有一个函数在点击时执行此操作。

//Gets the selected values
var selected = [];
    for (var option of document.getElementById('mySelect').options) {
        if (option.selected) {
            selected.push(option.value);
        }

    }

//Resets the form
document.getElementById('form1').reset();

//Chosen values doesnt get reset, so we do this manually
//Removes the values selected by clicking on the x icon
$link = $('a.search-choice-close');
            var i;
            for (i = 0; i < selected.length; i++) {
                $link[i].click();
            }

None of the answers here worked for me.
Im using chosen select with the multiple attribute.
Normal submit form button didnt do the trick either.
So i just had a function do this upon click.

//Gets the selected values
var selected = [];
    for (var option of document.getElementById('mySelect').options) {
        if (option.selected) {
            selected.push(option.value);
        }

    }

//Resets the form
document.getElementById('form1').reset();

//Chosen values doesnt get reset, so we do this manually
//Removes the values selected by clicking on the x icon
$link = $('a.search-choice-close');
            var i;
            for (i = 0; i < selected.length; i++) {
                $link[i].click();
            }
So要识趣 2024-12-19 08:01:31

有时您必须重置所选择的被调用的选择。

我这样做

jQuery.fn.chosen_reset = function(n){
  $(this).chosen('destroy');
  $(this).prop('selectedIndex', 0);
  $(this).chosen(n)
}

并像这样调用这个函数,并将选项作为参数

$('select').chosen_reset({width:'369px'});

Sometimes you have to reset the select that chosen is called on.

I do this

jQuery.fn.chosen_reset = function(n){
  $(this).chosen('destroy');
  $(this).prop('selectedIndex', 0);
  $(this).chosen(n)
}

And call this function like this, with the options as an argument

$('select').chosen_reset({width:'369px'});
怀念你的温柔 2024-12-19 08:01:31

在 jQuery 中,类似的东西应该可以工作

<input name="Text1" id="something" type="text">

<input type="reset" id="reset_me"/>


$("#reset_me").click(function() { 
$("#something").val("");
});

In jQuery something like this should work

<input name="Text1" id="something" type="text">

<input type="reset" id="reset_me"/>


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