通过 onClick 将多个值传递到一个变量或数组中
Pass multiple values through onClick into one variable or array
所以我已经很努力地尝试过了,但还是想不通,
我有一个这样的按钮
<button onclick="signUp(document.getElementById('username').value,document.getElementById('email').value)">Sign up</button>
我想将它从某些输入请求的值传递到变量或变量数组中,这样我就可以像这样处理它们(示例)
var signUp = function(e){
alert(e);
}
(这只是简化但它证明了我的观点!)
有谁知道如何做到这一点,我一直很难搞清楚!
提前致谢,Magn0053
您可以用 { } 括起来将它们作为对象传递,或者用 [ ] 括起来将它们作为数组传递。但是,您所有的参数都是文档值,您的函数可以自己引用它们。
您可以采纳@adeneo 的想法,或者像这样将它们发送到数组中
signUp([document.getElementById('username').value,
document.getElementById('email').value])
基本解决方案
最基本的修改是在传递给 signUp
的值周围使用 []
。
var signUp = function(e) {
alert ("username:" + e[0]);
alert ("email:" + e[1]);
}
<input type="text" id="username">
<input type="text" id="email">
<button onclick="signUp([document.getElementById('username').value,document.getElementById('email').value])" id="submit">Sign up</button>
最佳实践
你真的不想在你的 DOM 中使用 javascript 所以首先修改你的 signUp
函数:
signUp = function() {
var username = document.getElementById('username').value;
var email = document.getElementById('email').value;
}
最后,从 HTML 中完全删除 onclick 并将其替换为 javascript:
document.getElementById('submit').onclick=signUp;
var signUp = function() {
var username = document.getElementById('username').value;
var email = document.getElementById('email').value;
alert("username:" + username);
alert("email:" + email);
}
document.getElementById('submit').onclick = signUp;
console.log("fred");
<input type="text" id="username">
<input type="text" id="email">
<button id="submit">Sign up</button>
您可以这样实现:
<button onclick="signUp({username:document.getElementById('username').value,email:document.getElementById('email').value})">Sign up</button>
在 js 中,您可以像这样访问它们:
var signUp = function(e){
console.log(e.username, e.email);
}
所以我已经很努力地尝试过了,但还是想不通,
我有一个这样的按钮
<button onclick="signUp(document.getElementById('username').value,document.getElementById('email').value)">Sign up</button>
我想将它从某些输入请求的值传递到变量或变量数组中,这样我就可以像这样处理它们(示例)
var signUp = function(e){
alert(e);
}
(这只是简化但它证明了我的观点!) 有谁知道如何做到这一点,我一直很难搞清楚!
提前致谢,Magn0053
您可以用 { } 括起来将它们作为对象传递,或者用 [ ] 括起来将它们作为数组传递。但是,您所有的参数都是文档值,您的函数可以自己引用它们。
您可以采纳@adeneo 的想法,或者像这样将它们发送到数组中
signUp([document.getElementById('username').value,
document.getElementById('email').value])
基本解决方案
最基本的修改是在传递给 signUp
的值周围使用 []
。
var signUp = function(e) {
alert ("username:" + e[0]);
alert ("email:" + e[1]);
}
<input type="text" id="username">
<input type="text" id="email">
<button onclick="signUp([document.getElementById('username').value,document.getElementById('email').value])" id="submit">Sign up</button>
最佳实践
你真的不想在你的 DOM 中使用 javascript 所以首先修改你的 signUp
函数:
signUp = function() {
var username = document.getElementById('username').value;
var email = document.getElementById('email').value;
}
最后,从 HTML 中完全删除 onclick 并将其替换为 javascript:
document.getElementById('submit').onclick=signUp;
var signUp = function() {
var username = document.getElementById('username').value;
var email = document.getElementById('email').value;
alert("username:" + username);
alert("email:" + email);
}
document.getElementById('submit').onclick = signUp;
console.log("fred");
<input type="text" id="username">
<input type="text" id="email">
<button id="submit">Sign up</button>
您可以这样实现:
<button onclick="signUp({username:document.getElementById('username').value,email:document.getElementById('email').value})">Sign up</button>
在 js 中,您可以像这样访问它们:
var signUp = function(e){
console.log(e.username, e.email);
}