0

私はJavaScriptが初めてなので、ここで我慢してください。

テキスト入力フィールドの値をチェックするコードを以下に示します。一致する場合は、ダイアログ モーダル ウィンドウを表示するカスタム ダイアログ オブジェクト/関数を起動します。

Cancel今私の目標は、ボタンがクリックされた場合に開くためにダイアログを起動したテキスト入力をクリアすることです

cancelCallbackダイアログ関数に渡すことができるという名前のコールバック関数があります。

hostnameSelector私の例では、入力フィールド セレクターをキャッシュしてからコールバックに渡している ことがわかります。

その下に、オブジェクトをコンソールに出力していることがわかります。コンソールにはテキスト フィールドの新しい値が表示されますが、画面上では更新されません。

これは、テキスト入力フィールドが画面/DOM に動的に追加されていることが原因である可能性がありますか?

どうすればそれを機能させることができるかについてのアイデアはありますか? 必要に応じて、最新の jQuery を使用することもできます。

// Show Notice if Hostname Matches the Domain Name
$(document).on('change','div.hostName > input',function() {

    // cached Input Selector
    var hostnameSelector = $(this);

    var hostName = $(this).val();
    var domainName = $("#domainName").val();
    var pattern = new RegExp(domainName + "$","g");
    if ( hostName.match(pattern) != null ) {

        var msg = 'Are you sure you want to delete action?';

        zPanel.dialog.confirm({
            heading: 'ATTENTION',
            message: msg,
            width: 300,
            cancelCallback: function (hostname) {
                    hostnameSelector .value = 'hi';
                    console.log(hostnameSelector);
            },
            cancelButton: {text: 'Cancel', show: true, class: 'btn-default'},
            okButton: {text: 'Confirm', show: true, class: 'btn-primary'},
        });

    }
});
4

1 に答える 1

1

CancelCallback は、次を呼び出して新しい値を設定する必要があります。

hostnameSelector.val("hi")
于 2013-04-20T02:25:30.190 に答える