5

以下のJQueryダイアログスクリプトがあります。ダイアログを閉じたときにフォームをクリアする関数を起動する方法を見つけようとしています。

function clearForm()
{
$(':input','#calcQuery')
.not(':button, :submit, :reset, :hidden')
.val('');
};
// form popup 
$(document).ready(function() 
{
//var dataString = $("#calcQuery").serialize();
    $("#formBox").dialog({
      bgiframe: true,
        autoOpen: false, 
        height: 600,
        width: 400, 
        modal: false,
        closeOnEscape: true,
        title: "Calculator",
        buttons:    {
            "Calculate": function() {

// form post
            $.ajax({
            type: "POST",
            url: "calc.php",
            data: $("#calcQuery").serialize(),
            dataType: "html",
            success: function(response)
                {
                $("#calcBox").html(response);
                $("#calcBox").show();   
                },
            error: function
                (xhr, ajaxOptions, thrownError)
                    {
                    alert(xhr.status); 
                    alert(thrownError);
                    }



    }).responseText;

// form post 

                }
            } 
    });

$('#calcButton').click(function(){
    $('#formBox').dialog('open');
    return false;
    });

});

$("#formBox").bind('dialogclose', function(event)
{
clearForm();
}); 
4

5 に答える 5

9

これにより、フォームがリセットされます。

$("#form").trigger( "reset" );
于 2013-01-25T15:45:58.847 に答える
5

クローズイベントを使用する

$("#formBox").dialog({
      bgiframe: true,
        autoOpen: false, 
        height: 600,
        width: 400, 
        modal: false,
        close: clearForm
});
于 2009-12-07T15:30:27.907 に答える
3

私はそれを使って動作させました...

function clearForm(form)
{
    $(":input", form).each(function()
    {
    var type = this.type;
    var tag = this.tagName.toLowerCase();
        if (type == 'text')
        {
        this.value = "";
        }
    });
};

と .....

// form post
            $.ajax({
            type: "POST",
            url: "calc.php",
            data: $("#calcQuery").serialize(),
            dataType: "html",
            success: function(response)
                {
                $("#calcBox").html(response);
                $("#calcBox").show();   
                clearForm("#calcQuery");
                },
            error: function
                (xhr, ajaxOptions, thrownError)
                    {
                    alert(xhr.status); 
                    alert(thrownError);
                    }



    }).responseText;

// form post

...今..ラジオボタンをデフォルトの「GB」に戻すにはどうすればよいですか?

&nbsp;KB <input type="radio" name="curr_unit" value="KB" />
&nbsp;MB <input type="radio" name="curr_unit" value="MB" />
&nbsp;GB <input type="radio" name="curr_unit" value="GB" checked/>
&nbsp;TB <input type="radio" name="curr_unit" value="TB" />

ありがとう

于 2009-12-08T19:07:08.710 に答える
3

よりエレガントなのは、メソッドの組み合わせです。

...
beforeClose: function() {
    $("#form").trigger("reset");
},
...

保存時、キャンセル時、タイトルバーの閉じるボタンでフォームがリセットされます。手動で実行する必要があるselect2の例外:

$("#mySelect2").select2('data', null);

同じbeforeCloseの内部

于 2013-09-11T13:03:15.643 に答える
0
`jQuery("#form").trigger( "reset" );`

成功メッセージが表示された、それを成功関数に配置します。
その後、それは完璧に動作します!
例:

success : function(){
jQuery('#contactsMsgs').html('<p class="success">All is well, your e&ndash;mail has been sent.</p>');
jQuery('#yourformname').trigger( 'reset' );
spinner.hide();`
} 
于 2013-02-04T08:54:37.867 に答える