JqueryUI对话框不适用于特定的输入名称

时间:2015-04-03 12:35:17

标签: javascript jquery jquery-ui jquery-ui-dialog

我对JqueryUI Dialog有一个奇怪的困难。此代码在输入名称为"提交"的情况下不起作用。它适用于所有其他输入名称(例如:submit2)。有人知道为什么以及如何解决这个问题,因为我不能为不同的原因更改输入名称? Jquery脚本有问题,我找不到。

<form action="?" method="get" class="alert2">
    <input name="test" type="text" value="dataaaa" />
    <input name="submit" type="submit" value="RECORD" />
</form>


$(function () {
    var confirmdialog = $('<div id="dialog"></div>').appendTo('body');
    $("#dialog").dialog({
        modal: true,
        bgiframe: true,
        width: 300,
        height: 200,
        autoOpen: false,
        title: 'Confirm'
    });
    $('form.alert2 input[type=submit]').click(function (theINPUT) {
        theINPUT.preventDefault();
        var theFORM = $(theINPUT.target).closest("form");
        $('#dialog').html('<P>confirm ?</P>');
        $("#dialog").dialog('option', 'buttons', {
            "Confirm": function () {
                theFORM.submit();
            },
                "Cancel": function () {
                $(this).dialog("close");
            }
        });
        $("#dialog").dialog("open");
    });
});

1 个答案:

答案 0 :(得分:0)

Click事件适用于按钮类型的元素。当元素类型保持为&#34;提交&#34;点击事件将无法产生预期的输出。

你能试试吗?

  <form action="?" method="get" class="alert2"> 
       <input name="test" type="text" value="dataaaa" /> 
       <input name="submit" type="button" value="RECORD" /> 
   </form>

$(function(){
        var confirmdialog = $('<div id="dialog"></div>').appendTo('body');
$("#dialog").dialog({
    modal: true,
    bgiframe: true,
    width: 300,
    height: 200,
    autoOpen: false,
    title: 'Confirm'
    });

$('form.alert2 input[type=button]').click(function(theINPUT){
    theINPUT.preventDefault();
    var theFORM = $(theINPUT.target).closest("form");
    $('#dialog').html('<P>confirm ?</P>');
    $("#dialog").dialog('option', 'buttons', {
            "Confirm" : function() {
                theFORM.submit();
                },
            "Cancel" : function() {
                $(this).dialog("close");
                }
            });
    $("#dialog").dialog("open");
});
    });