动态添加的输入未在屏幕上更新

时间:2013-04-20 02:08:13

标签: javascript jquery callback

我是JavaScript的新手,所以请耐心等待。

我有下面的代码检查文本输入字段值,如果它匹配,那么我将关闭我的自定义对话框对象/功能,它显示一个对话框模式窗口。

现在我的目标是清除在单击Cancel按钮时触发对话框打开的文本输入

我有一个名为cancelCallback的回调函数,我可以将其传递给我的Dialog函数。

在我的示例中,您可以看到我已缓存Input字段选择器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'},
        });

    }
});

1 个答案:

答案 0 :(得分:1)

CancelCallback应通过调用:

来设置新值
hostnameSelector.val("hi")