div标签没有更新

时间:2013-12-11 14:42:27

标签: javascript jquery html function

我创建了一个连接到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标记。

有人可以帮忙吗?

感谢。

3 个答案:

答案 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