在提交时将JS变量附加到表单

时间:2014-11-20 12:12:46

标签: javascript jquery html

页面完成加载后,用户会设置一个变量。

这存储在以下内容中:

var finalX;

我有一个表格,一旦设定了这个值就会提交。

我需要将其附加到以下内容:

<input type="hidden" name="x" />

由于它可以随时更改,直到提交表单,因此需要在单击表单按钮时选择它。

任何帮助将不胜感激:)

4 个答案:

答案 0 :(得分:3)

您可以使用简单的提交侦听器:

<form onsubmit="this.x.value = finalX;" ...>

或者附上onload:

window.onload = function() {
  document.forms['formName'].onsubmit = function() {
    this.x.value = finalX;
  }
}

或者如果您有多个提交侦听器:

window.onload = function() {
  document.forms['formID'].addEventListener('submit',function(){this.x.value=finalX},false)
}

答案 1 :(得分:1)

您可以使用.submit()功能捕获表单的实际提交。

  

Bind an event handler to the "submit" JavaScript event

然后你可以用隐藏的字段注入适当的值:

$( "#your_form" ).submit( function() {

  console.log( "Handler for .submit() called." );

  $( "input", {
    "type": "hidden",
    "name": "x",
    "value": your_hidden_value
  } ).appendTo( "#your_form" );

});

如果HTML中已存在隐藏字段,则只需设置值:

$( "#your_form" ).submit( function() {
  console.log( "Handler for .submit() called." );
  $( "input:hidden[name='x']" ).val( your_hidden_value )
});

答案 2 :(得分:0)

jQuery aproach:

$('#yourForm').submit(function(e) {
    this.x.value = finalX;
});

答案 3 :(得分:0)

除了其他答案,您也可以考虑这个

如果设置了finalX值,您可以在其下方添加以下行

$('#yourForm input[name=X]').val(finalX);

如果您不使用jQuery并假设您只有一个input[name="X"]元素,则可以尝试使用以下行

var ele = document.getElementsByName("X");
if(ele.length > 0) ele[0].value =  finalX;