我在尝试弄清楚如何执行此操作时遇到了麻烦。我想使用表单中的字段作为变量调用 JavaScript 函数。
我有这个:
<form>
<select name="users" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<option value="1">Peter Griffin</option>
<option value="2">Lois Griffin</option>
<option value="3">Joseph Swanson</option>
<option value="4">Glenn Quagmire</option>
</select>
</form>
来自一个例子,但我需要的是这个,但不起作用:
<form onsubmit="myFunction(this.num_cluster)">
Num. Cluster: <input type="text" id="num_cluster">
<input type="submit">
</form>
云有人帮我吗?谢谢:)
最佳答案
将 id
更改为 name
- 之后您可以访问输入字段的值
function myFunction(form, event) {
event.preventDefault();
alert(form.num_cluster.value);
}
<form onsubmit="return myFunction(this, event)">
Num. Cluster: <input name="num_cluster" type="text">
<input type="submit">
</form>
由于问题更有趣 - 我们可以扩展我们的方法 onsubmit
function s(form, event) {
event.preventDefault();
var values = Array.prototype.slice.call(form.elements) // as form elements are not an array
.filter(function(element) {
return element.type !== 'submit'; // I don't need submit button
})
.map(function(element) {
return (element.name + ': ' + element.value); // get name and value for rest form inputs and assign them to values variable
});
alert('values => ' + values.join(', ')) // finish
}
<form onsubmit="return s(this, event)">
<p>Foo:
<input type="text" name='foo' />
</p>
<p>Bar:
<input type="text" name='bar' />
</p>
<p>Baz:
<select name='baz'>
<option value="lorem">lorem</option>
<option value="ipsum">ipsum</option>
</select>
</p>
<p>
<input type="submit" />
</p>
</form>
关于javascript - 从表单向 JavaScript 函数传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29830498/