javascript - 如何将我的 HTML 表单提交与我的 JavaScript 表单更新分开?

标签 javascript php html forms

我的页面上有一个围绕表格的表单,布局如下:

+-------------------------------------------------+
|                      FORM                       |
|  +-------------------------------------------+  |
|  |                   TABLE                   |  |
|  | +---------------------------------------+ |  |
|  | |       |       | THEAD |       |       | |  |
|  | +---------------------------------------+ |  |
|  | +---------------------------------------+ |  |
|  | |       |       | TBODY |       |       | |  |
|  | |  row  |   ~   |   ~   |   ~   |   ~   | |  |
|  | |  row  |   ~   |   ~   |   ~   |   ~   | |  |
|  | |  row  |   ~   |   ~   |   ~   |   ~   | |  |
|  | |  row  |   ~   |   ~   |   ~   |   ~   | |  |
|  | |  row  |   ~   |   ~   |   ~   |   ~   | |  |
|  | |  row  |   ~   |   ~   |   ~   |   ~   | |  |
|  | |  row  |   ~   |   ~   |   ~   |   ~   | |  |
|  | |  row  |   ~   |   ~   |   ~   |   ~   | |  |
|  | |  row  |   ~   |   ~   |   ~   |   ~   | |  |
|  | +---------------------------------------+ |  |
|  | +---------------------------------------+ |  |
|  | |                 TFOOT                 | |  |
|  | +---------------------------------------+ |  |
|  +-------------------------------------------+  |
|                                                 |
|          SUBMIT                  RESET          |
+-------------------------------------------------+

表单输入在 THEAD 中,之前提交的值显示在下面的 TBODY 中。当用户在表单中输入值并单击“提交”或按“输入”时,表单显然已提交。

此外,当用户单击 TBODY 中某一行内的任何单元格时,我会使用 JavaScript 将该行转换为可编辑行。所有静态文本都替换为输入、选择和复选框。这样用户就可以在线编辑数据。这就是用户想要的,所以我必须给他们。我已经尝试过 jqGrid,但它不适用于我正在做的事情。

现在,这是我的问题。显然,当用户完成对一行的编辑并按下“回车”键时,整个表单将提交。这不是我想要的行为,因为我在幕后使用 PHP 寻找特定的 POST 值;另外,我不想重新加载整个页面,我希望 AJAX 为我刷新该区域。我需要的是一种方法,可以将按下“enter”键更新行的用户与按下“enter”键进行初始表单提交的用户区分开来。

我试过像这样使用两个表:

+-------------------------------------------------+
|                      FORM                       |
|  +-------------------------------------------+  |
|  |                   TABLE                   |  |
|  | +---------------------------------------+ |  |
|  | |       |       | THEAD |       |       | |  |
|  | +---------------------------------------+ |  |
|  +-------------------------------------------+  |
+-------------------------------------------------+
   +-------------------------------------------+
   |                   TABLE                   |
   | +---------------------------------------+ |
   | |       |       | TBODY |       |       | |
   | |  row  |   ~   |   ~   |   ~   |   ~   | |
   | |  row  |   ~   |   ~   |   ~   |   ~   | |
   | |  row  |   ~   |   ~   |   ~   |   ~   | |
   | |  row  |   ~   |   ~   |   ~   |   ~   | |
   | |  row  |   ~   |   ~   |   ~   |   ~   | |
   | |  row  |   ~   |   ~   |   ~   |   ~   | |
   | |  row  |   ~   |   ~   |   ~   |   ~   | |
   | |  row  |   ~   |   ~   |   ~   |   ~   | |
   | |  row  |   ~   |   ~   |   ~   |   ~   | |
   | +---------------------------------------+ |
   | +---------------------------------------+ |
   | |                 TFOOT                 | |
   | +---------------------------------------+ |
   +-------------------------------------------+

但我在对齐两个单独表格的列时完全没有运气。他们必须排队,而且看起来是同一张 table 。我必须提供此演示文稿,因为这是需求文档中的内容。

那么,正如我的标题所说,我怎样才能将同一表单中的不同功能分开?如何将初始表单提交与 JavaScript 更新提交分开?

最佳答案

没有 jQuery

我不确定问题到底是什么,但是如果你想阻止表单提交,你可以这样做:

$('#myform').submit(function(e) {
    //proccess form elements
    //ajax call
    e.preventDefault();
});

你也可以使用这样的东西:https://stackoverflow.com/a/8664680/4006027

关于javascript - 如何将我的 HTML 表单提交与我的 JavaScript 表单更新分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25688861/

相关文章:

javascript - Java servlet 代码没有被调用?

javascript - Bootstrap 模态溢出。如何纠正? (定心)

javascript - 无法使用 Ajax 将数据列表从 Controller 返回到 View 中的下拉列表。我收到未定义的未定义错误

php - 来自 HTML(和 jQuery)的连续 Ajax 调用

php - 地址中嵌入换行符的 Paypal IPN 错误

javascript - 如何将 console.log() 结果存储为对象/变量?

php - Laravel Eloquent 检查先前的急切加载关系

html - 图像不会在移动 View 之外调整大小 - Bootstrap

javascript - php ajax表单动态提交

jquery - 真正的客户端 HTML 包括