JQuery与JS里submit()的区别示例介绍


在JavaScript(JS)和jQuery中,`submit()` 方法都用于处理表单的提交事件,但它们在使用方式和上下文上存在一些差异。下面我将通过示例来介绍这些区别。

### JavaScript 中的 `submit()`

在纯JavaScript中,`submit()` 方法是HTMLFormElement对象的一个方法,用于提交表单。你可以通过获取表单的DOM元素并调用其`submit()`方法来提交表单。

**示例代码**:


<form id="myForm">
  <input type="text" name="username" />
  <input type="submit" value="Submit" />
</form>

<script>
  // 假设你想通过JavaScript来提交表单
  document.getElementById('myForm').addEventListener('submit', function(event) {
    // 这里可以添加一些在提交前的处理逻辑
    // 如果不需要阻止表单提交,则不需要调用event.preventDefault()
    // 示例中我们直接让表单提交
  });

  // 或者,你可以在任何时候通过JavaScript代码来提交表单
  // 例如,点击一个按钮来提交表单
  document.getElementById('someButton').addEventListener('click', function() {
    document.getElementById('myForm').submit(); // 提交表单
  });
</script>

注意:在上面的示例中,我添加了一个`addEventListener`来监听表单的`submit`事件,但这只是为了展示如何添加事件监听器,并不是`submit()`方法使用的必要条件。

### jQuery 中的 `submit()`

在jQuery中,`submit()` 方法既可以作为事件处理器来绑定表单的提交事件,也可以作为触发事件的方法来提交表单。

**作为事件处理器**:


<form id="myForm">
  <input type="text" name="username" />
  <input type="submit" value="Submit" />
</form>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
  $('#myForm').submit(function(event) {
    // 在这里添加提交前的处理逻辑
    // 如果需要阻止表单提交,可以调用event.preventDefault()
    // 示例中我们让表单正常提交
  });
</script>

**作为触发事件的方法**:


$('#someButton').click(function() {
  $('#myForm').submit(); // 使用jQuery的submit()方法来提交表单
});

### 区别总结

- **使用方式**:在JavaScript中,`submit()` 是HTMLFormElement对象的一个方法,直接调用。在jQuery中,`submit()` 既可以作为事件处理器绑定到表单上,也可以作为触发事件的方法来提交表单。

- **上下文**:在JavaScript中,你需要直接操作DOM元素。在jQuery中,你通过选择器来操作元素,这使得代码更加简洁和易于维护。

- **依赖**:使用jQuery的`submit()`方法需要引入jQuery库,而JavaScript的`submit()`方法是原生支持的,不需要额外库。

希望这些示例和解释能帮助你理解JavaScript和jQuery中`submit()`方法的区别。