Javascript jQuery无法';连接';使用我的服务器生成的网页上的元素
我试图在SoftwareAgWebMethodsIDE中使用jQuery功能,它可以自己生成页面。。基本上,我给jQuery的函数一个服务器生成的元素ID,但是jQuery无法读取它的值,或者向它写入值,或者对它做任何事情 以下是我使用的代码:Javascript jQuery无法';连接';使用我的服务器生成的网页上的元素,javascript,jquery,webmethods,Javascript,Jquery,Webmethods,我试图在SoftwareAgWebMethodsIDE中使用jQuery功能,它可以自己生成页面。。基本上,我给jQuery的函数一个服务器生成的元素ID,但是jQuery无法读取它的值,或者向它写入值,或者对它做任何事情 以下是我使用的代码: if(jQuery.isNumeric(jQuery(CAF.model("#{activePageBean.clientIds['txtInput']}").id).val())) { alert("its a number"); } else { a
if(jQuery.isNumeric(jQuery(CAF.model("#{activePageBean.clientIds['txtInput']}").id).val()))
{
alert("its a number");
}
else
{
alert("its not a number");
}
txtInput是一个普通的输入文本字段,上面的代码被分配给一个按钮。。。无论在文本字段中输入什么,我都会收到“It not a number”警报
另外,如果我改为使用此代码
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);
。。。我收到一条消息“undefined”(不带双引号)的警报)我们需要一些HTML。不过我不太明白你的选择。你说它是“分配给一个按钮”,所以你需要点击
jQuery(document).on("click", "#clientIds[name=txtInput]", function(){
v = $(this).val();
alert(v);
});
总的来说,客户端代码和服务器端代码不通信。服务器端代码吐出HTML,客户端代码随后处理它。为了实现两者的通信,您需要通过页面请求或AJAX等方式发送数据。问题是:在jQuery选择器中表示某个内容,因此它不会寻找其他内容
字符串需要看起来像jsfwmp147312 \:defaultForm \:txtInput
因此,您需要通过两个步骤使其工作
var myId = CAF.model("#{activePageBean.clientIds['txtInput']}").id.replace(/:/g,"\\:");
var val = jQuery(myId).val();
if (jQuery.isNumeric( val ) {
alert("its a number");
} else {
alert("its not a number");
}
您的代码似乎朝着正确的方向前进,但if条件仍然失败。如果我执行var myId=CAF.model(“{activePageBean.clientIds['txtDateInput']}”).id.replace(/:/,“\\:”)代码>然后执行警报(myId)代码>,我收到一条警告说jsfwmp147312 \:defaultForm:txtInput
。。。您能确切地告诉我jQuery需要什么值,以便我可以相应地对字符串进行加减吗。。