Ajax表单onsubmit停止刷新

时间:2014-05-07 19:06:19

标签: php ajax forms

我有一个页面让我们称之为“X.php”,我用xmlhttp.open()函数调用另一个页面“Y.php”。

目前我在页面Y.php中有一个表单,我想阻止它刷新,因为一旦我点击提交按钮,我的表格就会消失。

我尝试使用页面X.php中的Jquery'vent.preventDefault()'但是它没有用。

有人知道解决方案吗?

while($row = mysql_fetch_array($query)) {

            echo "    <h2>Update your personal settings</h2>

            <form action='' id='target' method='POST'>
                Surname: <input type=text name='lid_voornaam' value='".$row['lid_voornaam']."'><br/>
                Name: <input type=text name='lid_naam' value='".$row['lid_naam']."'><br/>
                Email: <input type=text name='lid_email' value='".$row['lid_email']."'><br/>    
                <input type='submit' value='Whatever' id='test1'/> 
            </form>";
    }

Java脚本:

<script type="text/javascript">
$(document).ready(function(){
   $("#test1").click(function(event){
    event.preventDefault();
  });

});

2 个答案:

答案 0 :(得分:1)

在您的表单标签中。添加onSubmit="return false;

<form action='' id='target' method='POST' onSubmit="return false;>
   Surname: <input type=text name='lid_voornaam' value='".$row['lid_voornaam']."'><br/>
   Name: <input type=text name='lid_naam' value='".$row['lid_naam']."'><br/>
   Email: <input type=text name='lid_email' value='".$row['lid_email']."'><br/>    
   <input type='submit' value='Whatever' id='test1'/> 
</form>

正如@andrew提到的那样。您的PHP脚本将生成多个<form>标记,这些标记都具有相同的标识id='target'。这可能会导致页面出现问题,因为这不是有效的HTML

答案 1 :(得分:0)

我原以为你发布的javascript实际上应该有效。

但是如果这是你的实际代码,我怀疑它失败了,因为所有表单上的所有提交按钮都有id='test1',而id应该是唯一的

试试这样:

$i=0;

while($row = mysql_fetch_array($query)) {

            echo "    <h2>Update your personal settings</h2>

            <form action='' id='target."$i++".' method='POST'>
                Surname: <input type=text name='lid_voornaam' value='".$row['lid_voornaam']."'><br/>
                Name: <input type=text name='lid_naam' value='".$row['lid_naam']."'><br/>
                Email: <input type=text name='lid_email' value='".$row['lid_email']."'><br/>    
                <input type='submit' value='Whatever' id='test1'/> 
            </form>";
    }

 $("form").submit(function(event){
    var id = $(this).attr('id').split('target')[1];
    alert('form ' +id+ ' clicked');
    event.preventDefault();
  });