Javascript 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

我试图在SoftwareAgWebMethodsIDE中使用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是一个普通的输入文本字段,上面的代码被分配给一个按钮。。。无论在文本字段中输入什么,我都会收到“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需要什么值,以便我可以相应地对字符串进行加减吗。。