使用Bootstrap Application布局,我一直试图获取元素的值,但无法这样做,我尝试了几个代码,如
XSP.getElementById("#{id:elementName}").value
$("#{id:elementName}").val()
x$("#{id:elementName}").val()
dojo.byId("#{id:elementName}").value
但是四个中的非中有效,我如何从客户端获取元素的值
答案 0 :(得分:2)
要检查的2件事。
XSP.getElementById("#{id:elementName}")代码是否正确查找元素?注意:您应该在这里使用服务器端控件ID,而不是任何其他属性,例如: 名称赢了。如果你想通过名字来做,那么你应该使用另一种方法。
您想要获得什么类型的元素?如果它是文本输入,那么你可以使用 .value ,但如果它是一个选择,或者某种其他类型的控件,它可能是一个不同的方法/属性
要检查您是否正确找到元素,请尝试此操作(在CSJS按钮事件中):
<input type="text" name="view:_id1:inputText1" id="view:_id1:inputText1">
单击按钮然后在浏览器中检查您的javascript控制台,您应该在控制台上看到代表您的元素的某种信息,例如:
null
如果无法找到该元素,那么您的ID必定是错误的,您会看到// Note that you pass in the element that you retrieved already, and not the id
var val = XSP.getFieldValue(el);
一旦你确定要获得该元素,那么你可以尝试使用 XSP.getFieldValue(node)函数,我认为其中有一些智能可以根据类型正确找到值元素。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:inputText id="inputText1" value=""></xp:inputText>
<xp:button value="Get Element Value" id="button1">
<xp:eventHandler event="onclick" submit="false">
<xp:this.script><![CDATA[
var el = XSP.getElementById('#{id:inputText1}');
// Check your javascript console in your browser
console.log(el);
var val = XSP.getFieldValue(el);
// Check the contents of the value
console.log(val);
]]></xp:this.script>
</xp:eventHandler>
</xp:button>
</xp:view>
这是一个带有InputText的工作示例:
{{1}}