从提交的表单中获取值

时间:2012-06-08 20:37:51

标签: javascript jquery html forms

我有一个非常简单的形式:

<form id="toBeTranslatedForm" action="actionpage.php" method="POST" >
        <textarea name="userInput" id="toBeTranslatedTextArea"></textarea>
        <select id="translationOptions">//dynamically filled</select>
        <input type="submit" value="Translate" />
</form>

使用Jquery我正在检测表单是否已提交:

function outputTranslated()
{
    $('#toBeTranslatedForm').submit(function() {
        //do stuff
    });
}

如何在文本区域中输入文本以及从上面的表单中选择框中选择的选项?理想情况下,我想将它们放入数组中。

6 个答案:

答案 0 :(得分:4)

var theArray = $('#toBeTranslatedForm').serializeArray();

请参阅.serializeArray docs

在一个迂腐的笔记中,这不是“来自提交的表格”,因为你在实际提交任何内容之前都要求它们。

答案 1 :(得分:3)

使用Vanilla JS FormData

form.addEventListener("submit",function(e){
  e.preventDefault();
  var data = new FormData(form);
  for (const [name,value] of data) {
    console.log(name,value)
  };
})
   
<form id="form">
     <select id="sl1" name="sl">
      <option value="0" defaultSelected="defaultSelected">-- Select --</option>
      <option value="trek">-- Trek --</option>
      <option value="rim">-- RIM --</option>
     </select>
     <label for="lg">remember</label>
     <input type="checkbox" name="remember" id="lg" />
     <button type="submit">submit
     </button>
</form>

答案 2 :(得分:2)

我认为你在寻找类似的东西。

$('#toBeTranslatedForm').submit(function() {
  alert($(this).serialize());
  return false;
});

希望有所帮助

答案 3 :(得分:1)

以下是获得价值的方法:

function outputTranslated() {
    $('#toBeTranslatedForm').submit(function() {
       var textareaval = $('#userInput').val();
       alert(textareaval);
    });
}

您可以通过在上面的代码中的textareaval变量定义之后添加此行来为选择框执行相同的操作:

var selectval = $('#translationOptions').val();

然后,您可以使用序列化,也可以手动将其放入数组中:

var a = [textareaval,selectval];

答案 4 :(得分:0)

您可以从Submit事件中获取数据

function outputTranslated() {
    $('#toBeTranslatedForm').submit(function(evt) {
       const form = evt.target;
       // get the field that you want
       const userInputField = form.elements['userInput'];
       alert(userInputField.value);
    });
}

答案 5 :(得分:-1)

提交后,您可以通过执行以下操作来获取值:

function outputTranslated()
{
$('#toBeTranslatedForm').submit(function() {
    var textarea = $('#toBeTranslatedTextArea').val();
    var allVals = [];
    $('#translationOptions :checked').each(function() {
   allVals.push($(this).val());
 });
});}