2

我想发送一个 ajax 请求,但我尝试构建的查询字符串为空。

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>This is a project to show how to use RESTful</title>
</head>
<body>
<script type="text/javascript">var contexPath = "<%=request.getContextPath()%>";</script>
<script src="<%=request.getContextPath()%>/js/jquery.js"></script>


<script type="text/javascript">
function doAjaxPost() {
    var queryString = $('#htmlform') // empty

    alert("doAjaxPost Called:" + queryString + ":");

    $.ajax({
        ...
        ...
    });
}​    </script>

<H1>Add Employee</H1>

<p>
<form name="htmlform">
<table border=1>
    <thead><tr>
        <th>ID</th>
        <th>Name</th>
        <th>Email</th>
    </tr></thead>

    <tr>
        <td><input  type="text" name="ID" maxlength="5" size="3"></td>
        <td><input  type="text" name="Name" maxlength="10" size="10"></td>
        <td><input  type="text" name="Email" maxlength="10" size="10"></td>
    </tr>

</table>
<input type="button" value="Save Employee" onclick="doAjaxPost();" />
<p>
<p>
</form>
[<a href="http://localhost:8080/RESTful/service/employees">List all Employees</a> | <a href="add.jsp">Employee Form Test</a>]
</body>
</html>
4

3 回答 3

5

更改自:

<form name="htmlform">

至:

<form id="htmlform">

并来自:

var queryString = $('#htmlform')

至:

var queryString = $('#htmlform').serialize();
于 2012-06-13T18:10:42.950 回答
2

您正在使用 jQuery 选择一个 HTML 对象,但您没有从中得到任何东西(当您将它附加到 url 字符串时,queryString 仍然是一个 jQuery 对象)。

尝试以下

var queryString = $('#htmlform').serialize();

这应该导致表单被序列化为字符串,此时附加它应该可以正常工作。

于 2012-06-13T18:10:42.280 回答
1

您需要id="htmlform"在表格上注明$("#htmlform")才能使用。

于 2012-06-13T18:11:21.687 回答