我正在使用javascript创建表单。我必须将onclick放在a标签上以便在单击时调用方法。我这样做,但它没有出现在onclick上。
function remPass() {
var log = document.getElementById("login");
var form = document.createElement('form');
form.method = "post";
form.action = "";
log.appendChild(form);
var input = document.createElement('input');
input.type = "text";
input.name = "username";
input.className = "username";
input.placeholder = "Usuario";
var a = document.createElement('a');
a.className = "bt-enter pink";
a.id = "recordar";
a.href = "#";
a.onclick = "remember()"; //Here is the problem
a.innerHTML = "Recordar contraseña";
form.appendChild(input);
form.appendChild(a);
}
答案 0 :(得分:5)
您需要使用方法,而不是方法的结果,也不需要字符串
a.onclick = remember;
不要忘记创建
function remember(){
//some code
}
答案 1 :(得分:4)
正确的做法就是那样
a.onclick = remember; //do like that
var remember = function(){
//remember logic..
};
答案 2 :(得分:2)
正确的方法是
a.onclick = remember; //without double quotes
var remember = function(){
//more code here...
};
答案 3 :(得分:1)
在创建标记时,您应该使用setAttribute
方法设置标记的属性/属性:
var a = document.createElement('a');
a.setAttribute("class", "bt-enter pink");
a.setAttribute("id", "recordar");
a.setAttribute("href", "#");
a.setAttribute("onclick ", "remember();");
a.innerHTML = "Recordar contraseña";
这是跨浏览器创建元素的最有效方法。
答案 4 :(得分:0)
你应该给出一些类型函数而不是字符串:
a.onclick = remember;
//....
var remember = function() {
// remember logic
}