1

我正在使用 Jquery,我有一个用于搜索值的文本输入类型和一个用于清除搜索字符串的按钮。

我遇到的问题是当我单击清除搜索按钮时清除搜索字段时,输入文本中的值被清除,但是表单数据没有被清除,在浏览器控制台中我可以看到我在搜索中使用的输入文本场地。

以下代码用于清除输入文本中的值

$(':input','#myform')
    .not(':button, :submit, :reset, :hidden')
    .val('')
    .removeAttr('checked')
    .removeAttr('selected');  

我试过使用

$( '#myform' ).each(function(){
    this.reset();
});

然而它也没有解决问题。

单击清除搜索按钮时,如何清除输入文本字段以及表单数据?

表单元素

<form id="myform">
<input id="desc">       
<a href="#" class="easyui-linkbutton" onclick="getSearch()">Filter</a>
<a href="javascript:void(0)" class="easyui-linkbutton"
onclick="removeFilter()">Clear</a>  
</form>

编辑 1

function getSearch(){
            $('#dg').datagrid('reload',{
                desc: $('#desc').val(),
                            search: 'true',                                
                            loadValues: 'false'
            });
        }
4

1 回答 1

1

您可以使用以下内容清理字段和表单:

function clearForm() {
    // restore comboboxes to original value
    $("form select").each(function(){
          var id = $(this).attr('id');
          $(this).val($("#"+id +" option:first").val());
          $(this).trigger("change");
    });

    // empty form fields
    $("#myform").find(":input[type=text]").val("");
    $('.combo-value').each(function() {
        $(this).val("");
    });
    $('#myform').find(':checked').each(function() {
        $(this).removeAttr('checked');
    });
    // clear dateboxes - do not delete either line!
    $('.easyui-datebox').each(function(){
            //just type something random to force the hidden field to update
        $(this).datebox('setValue', 'dummy');
        $(this).datebox('setValue', '');
    });
}
于 2014-07-18T13:58:15.487 回答