我正在尝试在 Software AG webMethods IDE 中使用 jQuery 功能,它会自行生成页面。基本上,我给 jQuery 的函数一个服务器生成的元素 ID,但 jQuery 无法读取它的值,或者给它写一个值,或者用它做任何事情..
这是我使用的代码:
if(jQuery.isNumeric(jQuery(CAF.model("#{activePageBean.clientIds['txtInput']}").id).val()))
{
alert("its a number");
}
else
{
alert("its not a number");
}
txtInput 是一个普通的输入文本字段,上面的代码被分配给一个按钮......无论在文本字段中输入什么,我总是得到“它不是数字”警告......
另外,如果我改用这段代码......
alert(jQuery(CAF.model("#{activePageBean.clientIds['txtInput']}").id).val());
...我总是收到一条警告说“未定义”(没有双引号)..
返回文本字段 ID 的表达式是:
CAF.model("#{activePageBean.clientIds['txtInput']}").id
.. 这是:
jsfwmp147312:defaultForm:txtInput
如果我改为运行此 webMethods 内置函数来获取值:
CAF.model("#{activePageBean.clientIds['txtInput']}").getValue();
它确实返回当前文本字段中的值..
所以基本上出于某种原因,jQuery 的函数无法与页面元素“连接”..
我该如何诊断/解决这个问题?
编辑:
更多信息:
如果我尝试下面的代码...
var myId = "jsfwmp147312:defaultForm:txtInput";
var element = document.getElementById(myId);
alert(element.value + "");
.. 我在警报中得到了字符串文本字段的字符串值,没问题......但是如果我尝试这个......
var myId = "jsfwmp147312:defaultForm:txtInput";
var val2 = jQuery(myId).val();
alert(val2);
...我收到消息“未定义”(没有双引号)的警报..
最佳答案
我们需要一些 HTML。我不太了解您的选择器。你说它是“分配给一个按钮”,所以你需要一个点击
。
jQuery(document).on("click", "#clientIds[name=txtInput]", function(){
v = $(this).val();
alert(v);
});
总的来说,客户端代码和服务器端代码不通信。服务器端代码吐出 HTML,然后客户端代码处理它。对于两者进行通信,您需要通过例如发送数据页面请求或 AJAX。
关于javascript - jQuery 无法将 'connect' 与我服务器生成的网页上的元素一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9634631/