1

我是 Dojo 框架的新手,所以我希望我的问题不是很愚蠢。

我的网页中有一个链接:

<a href="#" value="${index}" name="delete_name" id="delete_id${index}">Delete</a>

变量“索引”定义明确,没有问题。

然后,我编写了这段代码来为我的链接上的 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,我不知道为什么。

我可能错过了一些重要的东西,你能帮我吗?

提前致谢。

4

2 回答 2

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

于 2014-04-28T09:55:20.650 回答
1

dojo 查询将始终返回 domNode 引用。无论如何,锚元素是一个 HTML 元素。所以,这与 Dojo 无关,让我们看看 JS 部分有什么问题。

“值”不是锚元素的标准属性。因此,需要使用“getAttribute”方法访问附加属性。即在你的情况下,

element.getAttribute('value')
于 2014-04-28T09:51:13.750 回答