2013-04-20 62 views
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'}, 
     }); 

    } 
}); 

回答

1

CancelCallback应设置新的值通过调用:

hostnameSelector.val("hi") 
+0

谢谢你,我很高兴,这是一个简单的错误 – JasonDavis 2013-04-20 02:27:22