如何使用实体键(或其他对象)从html调用javascript
如何创建一个按钮,在他的如何使用实体键(或其他对象)从html调用javascript,javascript,html,google-app-engine,entity,Javascript,Html,Google App Engine,Entity,如何创建一个按钮,在他的onClick事件中使用对象调用函数?我的特殊情况下的实体密钥 我填充数据库中所有对象的表,并希望添加删除按钮。。。删除功能需要密钥,但我无法使其工作 类似于以下内容的内容不起作用: htmlString += "<td class='devicenameCol'><input id=\"deleteQuestion\" type=\"button\" value=\"löschen\" onclick=\"deleteQuestion(" + item
onClick
事件中使用对象调用函数?我的特殊情况下的实体密钥
我填充数据库中所有对象的表,并希望添加删除按钮。。。删除功能需要密钥,但我无法使其工作
类似于以下内容的内容不起作用:
htmlString += "<td class='devicenameCol'><input id=\"deleteQuestion\" type=\"button\" value=\"löschen\" onclick=\"deleteQuestion(" + item.key + ");\"/></td>";
htmlString+=”;
有几种方法可以做到这一点。如果使用的是onclick
属性,则可以使用如下参数调用该方法:
<button onclick="myFunction(value)" />
在myHandler函数中,此指针被设置为元素,因此您可以简单地读取数据键属性:
function myHandler(){
var key = this.getAttribute("data-key");
//Code to perform delete
}
我在表格中使用此HTML/Jinja代码在表格行中创建按钮:
<td class="center"><input class="button" type="submit" name="eid={{ rows.eid }}" value="{{ rows.caption }}"></td>
其中:
- rows.eid包含实体id
- rows.caption包含按钮文本
我使用“eid=”作为令牌在请求数据中查找按钮(令牌) 我尝试过这样的事情,问题是,我需要像序列化这样的东西。。。因为在html部分,每个对象都会被转换成“object object”,这就是我的问题……我明白了,我误解了。这可能是因为您的
item.key
不是一个基本值,而是一个对象。无论何时执行object.toString()操作,都会得到“[object]”结果。您应该调试脚本,看看item.key实际包含的值是多少!在您的示例中,看起来您直接将键对象本身作为参数传递。将密钥用作网页上的参数时,应将其设置为urlsafe:key\u safe=item.key.urlsafe()
。当读回密钥时,您可以执行以下操作:key=ndb.key(urlsafe=key\u-safe)
。实际上,我现在将我的“id”从key改为Long。。。但那看起来和我要找的一模一样。。。今晚我会看一看。。。谢谢你能告诉我如何让urlsafe方法发挥作用吗?chrome调试器,我得到一个例外,没有urlsafe函数。。。我可以用javascript实现吗?或者我必须在java中完成所有这些,并将urlsafe数据添加到我的对象中吗?因为您没有指定它是java,所以我的答案基于Python SDK。但是,要回答您的问题:是的,需要在服务器上为密钥实例运行urlsafe方法。似乎key.urlsafe()
的Java等价物是KeyFactory.keyToString()
和KeyFactory.stringToKey()
,它们是“web安全的”。这是。非常感谢,这对我很有帮助
button.addEventListener("click", myHandler)
function myHandler(){
var key = this.getAttribute("data-key");
//Code to perform delete
}
<td class="center"><input class="button" type="submit" name="eid={{ rows.eid }}" value="{{ rows.caption }}"></td>