Javascript 使用单个功能分别以多种形式过帐值

Javascript 使用单个功能分别以多种形式过帐值,javascript,html,forms,Javascript,Html,Forms,我有一个表单任务,该表单请求通过获取字段值分别在多个表单中发布值,所有表单都在每个表单提交调用中应用单个事件函数,因此页面上可能有多个具有相同标识符的表单。 请回顾这个只处理第一个字段值的工作示例,如果可能的话,建议使用通用javascript <script> function Order() { var formi=document.getElementById("test").value; document.getElementById(

我有一个表单任务,该表单请求通过获取字段值分别在多个表单中发布值,所有表单都在每个表单提交调用中应用单个事件函数,因此页面上可能有多个具有相同标识符的表单。 请回顾这个只处理第一个字段值的工作示例,如果可能的话,建议使用通用javascript

<script>
    function Order() {
        var formi=document.getElementById("test").value;
        document.getElementById("result").value=document.getElementById("test").value;
        alert(formi);
    }
</script>

<form onsubmit="Order();return false;">
<input type="text" id="test" value="">
<input type="text" id="result" value="">
<input type="submit" value="Order">
</form>

<form onsubmit="Order();return false;">
<input type="text" id="test" value="">
<input type="text" id="result" value="">
<input type="submit" value="Order">
</form>

函数顺序(){
var formi=document.getElementById(“测试”).value;
document.getElementById(“结果”).value=document.getElementById(“测试”).value;
警报(formi);
}
一种可能的解决方案:

<form method="post" onsubmit="order(this); return false;">
<input type="text" class="test" value="foo">
<input type="text" class="result" value="bar">
<input type="submit" value="Order">
</form>

<form method="post" onsubmit="order(this); return false;">
<input type="text" class="test" value="abc">
<input type="text" class="result" value="def">
<input type="submit" value="Order">
</form>

<script>
var order = function (form) {
    var fields = form.querySelectorAll('input');
    alert(fields[0].value + ', ' + fields[1].value);
}
</script>

变量顺序=函数(形式){
var fields=form.querySelectorAll('input');
警报(字段[0]。值+','+字段[1]。值);
}

演示:

请不要多次使用同一id,因为它在html中是不允许的,并且不会按照您的预期工作

以下是代码的改进版本:

var forms = document.getElementsByTagName('form');

function FormSubmit(e) {
    e.preventDefault();
    var text = e.target.children[0].value;
    for (var i = 0; i < forms.length; i++) {
        forms[i].children[1].value = text;
    }
}

for (var i = 0; i < forms.length; i++) {
    forms[i].onsubmit = FormSubmit;
}
var forms=document.getElementsByTagName('form');
功能表单提交(e){
e、 预防默认值();
var text=e.target.children[0]。值;
对于(var i=0;i
您可以在这里尝试,为了清晰起见,代码中有一些额外的注释


您不能有两个元素具有相同的
id
谢谢它正在工作,我如何将字段值作为字符串传递到新变量中?我知道,但是表单位于自动生成页面上,我必须对排序数据进行后期处理,谢谢您的信息