我是Dojo框架中的新手,所以我希望我的问题不是真的很蠢。
我的网页上有一个链接:
<a href="#" value="${index}" name="delete_name" id="delete_id${index}">Delete</a>
变量&#34; index&#34;定义明确,没有问题。
然后,我已经编写了这段代码来为我的链接上的onclick事件添加一个动作,并在提交之前调用一个JS函数:
dojo.query("a[name=supprimerEnfant_name]").forEach(function(element) {
Spring.addDecoration(new Spring.AjaxEventDecoration({
formId: "form_id",
elementId: element.id,
event: "onclick",
beforeSubmit: function(){
jsFunctionToCall(element.value);
},
params: { _eventId: "deleteEvent", fragments:"frag"}
}))
});
在我的jsFunctionToCall
中,我可以获得element.id
(已选中并且确定无效),但元素的值为null
,我可以&#39;弄清楚原因。
我可能错过了一些重要的事情,你能帮帮我吗?
提前致谢。
答案 0 :(得分:2)
您应该知道element.value
仅适用于由W3C定义的DOM的一部分。因此,如果你查看HTMLInputElement
接口(由表单元素使用),你会发现它显然有一个名为value
的属性,引用了元素的值。
然而,HTMLAnchorElement的情况并非如此。这意味着检索value
属性值的正确方法是选择属性本身,使用getAttribute()
函数或使用dojo/dom-attr Dojo模块。
例如:
require(["dojo/query", "dojo/dom-attr", "dojo/domReady!"], function(query, domAttr) {
query("a").forEach(function(element) {
console.log(element.id);
console.log(domAttr.get(element, "value")); // This will work
});
});
示范:JSFiddle
答案 1 :(得分:1)
dojo查询将始终返回domNode引用。无论如何,anchor元素是一个HTML元素。所以,这与Dojo无关,让我们看看JS部分有什么问题。
&#34;价值&#34; 不是锚元素的标准属性。因此,需要使用&#34; getAttribute&#34; 方法访问其他属性。 即在你的情况下,
element.getAttribute('value')