1

jquery ui ダイアログをプロンプトとして使用しています。「プロンプト」には、「OK」と「キャンセル」のボタンがあります。ここでの問題は、.dialog("close") がトリガーされたときにダイアログで入力フィールドの値を抽出することです。私の唯一の検証は、入力フィールドの長さが 0 文字を超える必要があることです。これは、何かを入力してキャンセルを押しても、プロンプトからのテキストが送信されることを意味します。私の考えは、どのボタンが押されたかを調べることでした...誰もこれに対する解決策を知っていますか?

私の現在のイベントコード:

$("#addBusinessarea").click(function(){
    createPrompt("Add new business area", "Business area name:");
    $( "#prompt" ).bind( "dialogclose", function(event, ui) {
        if($("#promptValue").val().length > 0){
            // Add business area 
        }
    });
});
4

2 に答える 2

1

適切に解決するには、jQuery UI ダイアログのボタンを定義した方法を変更してください。次のようになります (ボタンごとに異なるクリック ハンドラーを使用できることに注意してください)。

$("#modal").dialog({
        buttons: {
            Yes: {
                text: 'Yeeees!',
                click: function() {
                    alert('I clicked yes!');
                }
            },
            No: {
                text: 'Hell no!',
                click: function() {
                    alert('I clicked no!');
                }
            }
        }
    })
于 2011-09-06T12:15:34.903 に答える
1

古い質問ですが、この質問が思い浮かび、 jQuery UIダイアログボタンの助けを借りて正しい答えを見つけました

event.targetあなたのボタンです。

$( "#prompt" ).bind( "dialogclose", function(event, ui) {
    if ($(event.target).text() != "Cancel") {
        if($("#promptValue").val().length > 0){
            // Add business area 
        }
    }
});
于 2013-08-02T16:53:06.427 に答える