Javascript 如何将表行传递到包含所有输入元素的隐藏表单?

Javascript 如何将表行传递到包含所有输入元素的隐藏表单?,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我在我的项目中创建了包含多行的表。现在,我想提交来自表行的元素,用户在表行中输入它们的信息,但不是全部。所以我想知道什么是将该表行中的所有元素传递到hidden的最佳方法,这样我就可以只提交该特定行中的信息。这是我的密码: <form name='slotsPtc' id='slotsPtc' method='POST'> <table> <tbody> <tr> <td>Slot_La

我在我的项目中创建了包含多行的表。现在,我想提交来自表行的元素,用户在表行中输入它们的信息,但不是全部。所以我想知道什么是将该表行中的所有元素传递到hidden的最佳方法,这样我就可以只提交该特定行中的信息。这是我的密码:

<form name='slotsPtc' id='slotsPtc' method='POST'>
   <table>
     <tbody>
       <tr>
          <td>Slot_Label</td>
          <td><span>
              <input type='text' name='EMAIL' value='' class="email"/>
              <input type='button' name='slot' value='Save' onClick='saveSlot(this)'></span>
              <input type='hidden' value='userID'/>
              <input type='hidden' value='dateSignUp'/>
          </td>
       </tr>
    </tbody>
  </table>
</form>

function saveSlot(btn){
   //Here I want to submit my form with information entered in table row.
}

插槽标签
功能存储槽(btn){
//在这里,我想提交表格,并在表格行中输入信息。
}

我应该在onClick事件之后将信息传递给我的函数,然后动态创建表单并传递所有信息吗?还是有更好的方法

我的建议是这样做,然后发布通过选择器找到的表单数据:

$('#save').click(function(){
    console.log($(this).parents('tr').find('td input'));
});
示例(从选择器检查控制台中的对象):


我的建议是这样做,然后发布通过选择器找到的表单数据:

$('#save').click(function(){
    console.log($(this).parents('tr').find('td input'));
});
示例(从选择器检查控制台中的对象):

我的建议是:

功能存储槽(btn){
var frm=document.getElementById('slotsPtc');
//禁用该按钮,直到表单成功提交或失败
//这是为了避免在提交相同数据时提交
btn.disabled=true;
$.ajax({
网址:frm.action,
类型:frm方法,
数据:$(btn).parent('tr').find(':input').serialize(),
成功:功能(结果){
//再次启用该按钮
btn.disabled=false;
//成功提交表格
},
错误:函数(jqXHR、textStatus、errorshown){
//在任何情况下,再次启用按钮
btn.disabled=false;
//未能提交的表格
}
});
}

插槽标签
插槽_标签1
我的建议是:

功能存储槽(btn){
var frm=document.getElementById('slotsPtc');
//禁用该按钮,直到表单成功提交或失败
//这是为了避免在提交相同数据时提交
btn.disabled=true;
$.ajax({
网址:frm.action,
类型:frm方法,
数据:$(btn).parent('tr').find(':input').serialize(),
成功:功能(结果){
//再次启用该按钮
btn.disabled=false;
//成功提交表格
},
错误:函数(jqXHR、textStatus、errorshown){
//在任何情况下,再次启用按钮
btn.disabled=false;
//未能提交的表格
}
});
}

插槽标签
插槽_标签1

因此,不要使用此选项:

data: $(btn).parent('tr').find(':input').serialize()
我不得不用这个:

data:$j(btn).closest('td').find(':input').serialize()

由于某种原因,当我使用第一行代码时,我的表单在提交后是空的。然后我切换并使用了最近的('td').find(':input'),这给了我正确的输入字段和有效值

因此,不要使用这个:

data: $(btn).parent('tr').find(':input').serialize()
我不得不用这个:

data:$j(btn).closest('td').find(':input').serialize()

由于某种原因,当我使用第一行代码时,我的表单在提交后是空的。然后我切换并使用了最近的('td').find(':input'),这给了我正确的输入字段和有效值

您可以使用Ajax将您的信息作为json发送到服务器,而无需创建新表单。常规提交将提交
中的所有输入,但您可以使用
jQuery
和自定义
数据成员进行自定义提交。您可以使用Ajax将您的信息作为json发送到服务器,而无需创建新表单formA regular submit将提交
中的所有输入,但您可以使用
jQuery
和自定义
数据
成员进行自定义提交。我尝试了此代码,由于某种原因,在提交表单后,我的表单为空。我不知道为什么。我尝试了这个代码,由于某种原因,我的表单在提交表单后是空的。我不知道为什么。