繁体   English   中英

如何从form.submit()访问键/值数据?

[英]How to access key/value data from form.submit()?

在Rails应用程序中,我使用jquery截取表单提交并对数据执行某些功能。

表单响应如下所示:

"object"=>{"parent_id"=>"1", "array_of_strings"=>["string1", "string2", ......]}

我需要获取parent_id ,然后从array_of_strings获取每个字符串

$('#myForm').submit ->
  $this = $(this)
  dataArray = $this.serializeArray()

  i = 0
  while i < dataArray.length
    if dataArray[i].name == 'object[parent_id]'
      parent = dataArray[i].value
  i += 1

  i = 0
  while i < dataArray.length
    if dataArray[i].name == 'object[array_of_strings][]'
      string = dataArray[i].value
      //do something with parent and string
  i += 1

这是最好的方法吗? 遍历整个表单响应以访问键/值似乎过于复杂。 我的jquery / javascript知识有限,我想知道是否有更常用的更好方法?

您可以使用jQuery选择器通过其nameid属性引用任何表单字段,并使用jQuery的val()函数修改字段值以检索或设置表单字段值。 我已经编写了一个完整的示例,该示例显示了如何在表单提交时检索和修改表单值,然后最终将它们(修改后)传递给服务器。 当然,这不是唯一的方法。

var form = $("#myForm");
var parentIdField = form.find("[name=parentId]");
var someOtherField = form.find("[name=sameOtherField]");
form.on("submit",modifyFormFieldsAndSubmit);

function modifyFormFields(submitEvent) {
   // retrieve field value
   var parentIdFieldValue = parentIdField.val();
   // modify parentIdFieldValue ... and set it back to field
   parentIdField.val("someNewValue");
   // do the same for other fields you want to modify ...
   // finally submit modified fields values to server
   // note that 'form' reference jQuery extended form and 'form[0]'
   // reference underlying HTML form element
   form[0].submit();       
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM