更新表单元素而不提交(Ajax+JS)


Update Form Element Without Submit ( Ajax + JS )

我必须在不提交的情况下从数据库(使用外部php文件)更新表单的某些元素。

例如:编写员工id,甚至在提交之前都会填充姓名。我对ajax还很陌生,所以不太了解如何执行ajax。

我的代码如下:

xyz.js的一部分

$("#makeproj-nav").click(function()
{
// project form starts
s = "<form id = 'create_new_form' name = 'new_form' method='post' action='insert_new.php'><div class='project_form'><span>";
s += "<div class='Form_contents'> Employee ID: <input type='text' size='100' name='emp_id'></div>";
s += "<div class='Form_contents'> Employee Name: <input type='text' size='100' name='emp_name'></div>";
s += "<div class='Form_contents'> <input type='submit'> </div>";
s += "<span></div></form>";
$("#card-wrapper").html(s);
$('#create_new_form').on('click', function(e) {
$.ajax({
      url : 'Find_EmpName.php',
      type : 'POST',
      data : $(this).serialize(),
      success : function(response) {
        $("emp_name").value(response.reply);
      }
    });
  });
});

Find_EmpName.php最好采用员工id,然后返回员工名称并在所需字段中更新。如果你纠正上面的代码,那就太好了。感谢

首先

.submit()是一张表格,而不是.click()

您单击表单中的提交按钮以提交表单,但您自己没有单击表单

因此,首先将click更改为submit,除非您希望每次有人点击您的表单时都执行ajax调用

然后,使用.preventDefault()禁用提交事件的正常提交行为,并在有人单击submit按钮或提交表单后执行ajax调用。

$('#create_new_form').on('submit', function(event){
    event.preventDefault();
    //your ajax call
});

接下来

当你这样做时:

$("emp_name").value(response.reply);

具体来说:

$("emp_name")

您要求jQuery选择<emp_name> 的所有元素

有这样的事情吗?我不这么认为。

所以,你想做的是通过名称来定位输入,对吧?

所以你这样做:

$("input[name=emp_name]")

接下来

jQuery中没有.value(),而是.val()。不要混合使用javascript和jQuery。

正确的版本是:

$("#create_new_form input[name=emp_name]").val(response.reply);

你可以在这里找到更多关于如何使用选择器的信息:

http://api.jquery.com/category/selectors/

祝你好运。