2013-03-24 196 views
0

我想使用JSP从JSON页面获取一些数据。 JSON收到一个参数userId,根据userId用户详细信息填充在JSON页面中。我正在使用getJSON()方法从页面获取数据。但是,我的问题是当按钮被点击时,表单被提交。这fiddle是没有getJSON()方法不按提交后提交表格,但,Here表单提交后,我点击一个按钮。我回来了false还没有用。如何防止按钮提交表格

请告诉我如何在不提交表单的情况下获取JSON数据表单。如果有其他方法或更好的方法,请建议一个。

这里是我的代码:

$("input[name=submit]").click(function(){ 
    var dataToBeSent = $("form").serialize(); 
    alert (dataToBeSent); 
    $.getJSON(url,dataToBeSent, function(data) { 
     var items = []; 
     $.each(data, function(key, val) { 
      items.push('<li id="' + key + '">' + val + '</li>'); 
     }); 
     $('div').html($('<ul/>', { 
      'class' : 'my-new-list', 
      html : items.join(' ') 
     })); 
    }); 
    return false; 

问候

Dibya

+0

你找[preventDetault()](http://api.jquery.com/event.preventDefault/) ? – SachinGutte 2013-03-24 05:21:56

+0

我didnt知道使用preventDefault .. – NewUser 2013-03-24 05:27:32

+0

我喜欢这[参考](http://dev-tricks.com/event-preventdefault-and-event-stoppropagation-and-event-stopimmediatepropagation/) – 2013-03-24 05:31:25

回答

4

你需要做的event.preventDefault()

$("input[name=submit]").click(function(e){ 
    ................ 
    ................ 
    ................ 
    ................ 
    e.preventDefault(); 
}); 

回报虚假不停止活动为它不类似于object.onclick。要停止默认行为,您必须使用preventDefault。

+2

有缺少'); '。 – SachinGutte 2013-03-24 05:24:22

+1

谢谢。更正 – gaurang171 2013-03-24 05:25:18

0

尝试像这样把它变成一个函数返回,而不是一个事件监听器:

<script type="text/javascript"> 
    function serializeForm(){ 
     var dataToBeSent = $("form").serialize(); 
     alert(dataToBeSent); 
     // $.getJSON(); function here 
     return false; 
    } 
</script> 
<form action="#submit" method="post" onsubmit="return serializeForm();"> 
    <input type="text" name="data1" id="data1" value="1" /> 
    <input type="text" name="data2" id="data2" value="2" /> 
    <input type="text" name="data3" id="data3" value="3" /> 
    <input type="submit" /> 
</form> 
+0

“codebins.com上的keyur”方法也起作用。 – MLewisCodeSolutions 2013-03-24 05:28:28

+0

这段代码和我的demo小提琴有什么区别?我找不到任何,因此我认为这是行不通的。 – NewUser 2013-03-24 05:48:15

+0

区别在于窗体上的onsubmit =“”将等待处理窗体,直到serializeForm()函数运行完毕。如果你返回false而不是默认的true,它基本上和event.preventDefault()一样。我最关心的是滥用jQuery。指向一个函数更有效,分配一个事件处理函数。 – MLewisCodeSolutions 2013-03-24 06:31:01

相关问题