使用jQuery创建一个查询字符串不起作用

时间:2012-06-13 18:07:07

标签: javascript jquery query-string

我想发送一个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>

3 个答案:

答案 0 :(得分:3)

更改自:

<form name="htmlform">

要:

<form id="htmlform">

和来自:

var queryString = $('#htmlform')

要:

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

答案 1 :(得分:2)

您正在使用jQuery选择一个HTML对象,但是您没有从中获取任何内容(在您将其附加到url字符串时,queryString仍然是一个jQuery对象。)

尝试以下

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

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

答案 2 :(得分:1)

您需要在表单上说id="htmlform" $("#htmlform")才能正常工作。