【问题标题】:Jquery form resetjQuery表单重置
【发布时间】:2015-07-30 02:10:53
【问题描述】:

我有以下功能应该重置表单的一部分:

function changeForm(sel) {
    var arr = {
       "High-School Student": "hs",
       "University Student": "us"
    };
    $('#' + arr[sel]).show();
    delete arr[sel];
    $.each(arr, function (key, value) {
       var div = '#' + value;
       $(div).hide();
       $(div + ' :input').each(function () {
           $(this).val('');
       });
    });
}

根据另一个字段中的输入,我会显示带有相关字段的 div,并重置所有其他不相关的字段。某些字段具有数组类型的名称:name="field_name[]"。问题是对于这些字段$(this).val(''); 不会取消选择选定的属性。该类型的字段是多选的,使用http://zellerda.com/projects/tokenize

【问题讨论】:

    标签: javascript jquery tokenize


    【解决方案1】:

    因为组件生成 UL 而不是输入,并且您的标签中唯一的输入元素是具有 'TokenSearch' 类的输入

    $.each(arr, function (key, value) {
       var div = '#' + value;
       $(div).hide();
       $(div + ' :input').val('');
       $(div + ' .Token').remove();
    });
    

    【讨论】:

    • 这确实删除了标签,但该选项仍保持选中状态,因此$(div + ' .Close').trigger('click'); 触发插件删除事件。谢谢你的帮助!!
    • 你是对的。混合答案会有所帮助:$(div + ' .Close').trigger('click');
    【解决方案2】:

    我不知道这个插件是否有重置字段的功能,但我的解决方法是在每次关闭时触发一次点击:

    假设这个 HTML :

    <div class="tokenize-sample Tokenize" id="tk1">
        <ul class="TokensContainer">
            <li class="Token" data-value="CH"><a class="Close">×</a><span>Switzerland</span></li>
            <li class="Token" data-value="FR"><a class="Close">×</a><span>France</span></li>
            <li class="Token" data-value="DE"><a class="Close">×</a><span>Germany</span></li>
            <li class="TokenSearch"><input size="5"></li>
        </ul>
        <ul class="Dropdown" style="display: none;"></ul>
    </div>
    

    我会执行这个js:

    $("#tk1 .Token .Close").trigger( "click" );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 2013-04-18
      • 2015-09-02
      • 2021-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多