javascript - 相当于 $(this).parent().submit() 的普通 JavaScript 是什么?

标签 javascript jquery

我正在尝试使用 HTML 和 JavaScript 提交一个表单。我已将一个事件监听器附加到我的复选框 (.checkbox),它等待单击,单击后启动一个尝试提交表单的函数。

我已经成功使用了 jQuery 的 .parent() 用法,但现在尝试将其切换到普通 JS。

我已经尝试过 this.parentNode.submit();,但是它返回了错误消息。

this.parentNode.submit is not a function at HTMLInputElement.formSubmit

是否有可能通过将 jQuery $(this).parent().submit() 替换为普通 JS 等效项来提交表单?

HTML:

<form id="theform" action="/phones/search_results" accept-charset="UTF-8" data-remote="true" method="post"><input name="utf8" type="hidden" value="✓">
  <label>
    <input type="checkbox" name="brand_name" id="brand_name" value="Apple" class="Apple brand checkbox" style="height: 30px;">
        Apple

  </label>

$(function() {
  var checkbox = document.querySelectorAll(".checkbox");
  for (var i = 0; i < checkbox.length; i++) {
    checkbox[i].addEventListener("click", formSubmit)
  }

});
function formSubmit(){
  if(this.checked){
    $(this).parent().submit();
    console.log("Form was submitted" + this.parentNode)
  }
}

最佳答案

您可以选择封闭的表单元素并按如下方式提交:

element.closest( 'form' ).submit();

这会忽略任何嵌套,并且不需要您自己循环遍历表单。它的功能类似于 querySelector,因为它也可以返回 null,因此请注意这一点,因为如果它没有嵌套在表单中,它会抛出错误。

MDN https://developer.mozilla.org/en-US/docs/Web/API/Element/closest

关于javascript - 相当于 $(this).parent().submit() 的普通 JavaScript 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42799725/

相关文章:

javascript - 在另一个数组中查找 n 的平方根时 bool 结果不正确

javascript - 用 Canvas 制作矩形叠加图像

javascript - 使用普通 JavaScript 和无正则表达式拆分图像 src 属性

javascript - 加载脚本时显示 'Loading' 图标

javascript - 如何更改具有 ID 的 <div> 的类?

javascript - 防止默认功能不起作用

javascript - 如何正确循环 JSON 响应

javascript - 配置JavaScript单元测试并 promise 声明

javascript - 按特定顺序使用 ajax 响应数据更新列表

jquery - 需要帮助将我的同位素容器居中