我是使用 play 框架和 ajax 进行 Web 开发的新手,现在我想使用 ajax 将表单中的字符串传递给 Controller ,但我不知道该怎么做。你能帮助我吗?这是我的代码: html:
<form onsubmit="return newSearch();" id="formId">
<input type="search" placeholder="Search for more" id="searchBar_chat">
</form>
<script type="text/javascript" >
function newSearch()
{
var s = document.getElementById("chatDialgue");
var searchValue = document.getElementById("searchBar_chat").value;
s.innerHTML = s.innerHTML + '<li>'+ searchValue +'</li>';
document.getElementById("searchBar_chat").value ="";
$.ajax({
url: "DataMatch/searchContentMatch",
type:"GET",
cache: false,
dataType:"text",
data:"searchValue",
success: function (responseData) {
s.innerHTML = s.innerHTML + '<li>'+responseData+'</li>';
}
});
return false;
}
</script>
Controller :
public class DataMatch extends Controller{
public String searchContentMatch (String search) {
// Search match
return "HI"+search;
}
}
最佳答案
首先,在$.ajax()
的数据参数中,您必须构建一个查询字符串,因此正确的方法是将键(“search”)与其值(searchValue)连接起来)。
然后,您既不需要脚本中的 return false
语句,也不需要 onsubmit
表单属性上的 return
关键字。
最后,由于您使用的是 jQuery,因此请利用其选择功能并将 document.getElementById
替换为 $
。
<form onsubmit="newSearch();" id="formId">
<input type="search" placeholder="Search for more" id="searchBar_chat">
</form>
<script type="text/javascript" >
function newSearch(){
var searchValue = $("#searchBar_chat").val();
$("#chatDialgue").append('<li>'+ searchValue +'</li>');
$("#searchBar_chat").val("");
$.ajax({
url: "DataMatch/searchContentMatch",
type:"GET",
cache: false,
dataType: "text",
data: "search=" + searchValue,
success: function (responseData) {
$("#chatDialgue").append('<li>' + responseData + '</li>');
}
});
}
</script>
关于javascript - 无法通过ajax将字符串传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42697961/