我创建了一个连接到rest api的简单应用程序,如下所示:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="http://code.jquery.com/jquery-latest.min.js" >
</script>
<title></title>
</head>
<body>
<h1 id="header">A headline</h1>
<div id = "info"></div>
<p1 id = "p1">p1</p1>
<form id="name" name="name">
Please enter a switch: <input type="text" name="switch" id = "switch">
<input type="submit" value="submit" name="submit" id="submit">
</form>
<script>
$(document).ready(function() {
$('#name').submit(function() {
alert('submitted');
var switchName = $('#switch').val();
$.getJSON('http://localhost:8081/withindex/switch','name='+switchName, processSwitches(data));
});
});
function processSwitches(data) {
alert('processSwitches');
var infoHTML = '<p>Switch Name: ' + data.switchName +'</p>' ;
alert(infoHTML);
$('#info').html(infoHTML);
$('#header').html('<h1>Switches</h1>');
}
</script>
</body>
</html>
它会运行,并会正确返回infoHTML
字符串的提醒,但我无法弄清楚为什么它不会更新ID为info
的div标记。
有人可以帮忙吗?
感谢。
答案 0 :(得分:3)
您正在调用processSwitches
函数中的$.getJSON
函数。您应该只传递该函数的名称 - 没有(data)
部分:
$.getJSON('http://localhost:8081/withindex/switch','name='+switchName, processSwitches);
简单地说,这个:
processSwitches
而不是:
processSwitches(data)
修改强>
您也忘了阻止表单提交。只需在return false
事件处理程序的末尾添加submit
:
$('#name').submit(function() {
alert('submitted');
var switchName = $('#switch').val();
$.getJSON('http://localhost:8081/withindex/switch','name='+switchName, processSwitches);
return false;
});
答案 1 :(得分:1)
看起来您正在提交表单。表单提交后数据丢失。
尝试添加
return false
后
$.getJSON(... )
答案 2 :(得分:0)
在小提琴中它工作http://jsfiddle.net/K3ZKA/检查你的控制台是否有错误!
strings are undefined but doesen't matter