当提交时判断,条件满足时,阻止表单提交,代码如下:代码如下
$('#submita').click(function(event) {
                     //满足一定条件,阻止表单提交
                          ....略
                          event.preventDefault();
                    }
            }); 这个时候,表单的确阻止了,但阻止以后,我需要点击别的控件postback页面,第一次点击没有任何的反应,只有第二次以后才能刷新页面,这是怎么回事?应该点击第一次就能刷新呀

解决方案 »

  1.   

    Event.stop = function(event) {
    if (event.preventDefault) {
    event.preventDefault();
    } else {
    event.returnValue = false;
    }
    }
      

  2.   

    to:caonimadebi_lazio 和原先不加效果一样呀,$('#submita').click(function(event) {
                        //满足一定条件,阻止表单提交
                              ....略
                         if (event.preventDefault) {
                                event.preventDefault();
                            } 
                         else {
                                event.returnValue = false;
                            }
                        }
                }); 
      

  3.   

    你干脆把提交按钮屏蔽得了
    <input id="submita" type="submit" onclick="return false">
      

  4.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    $("#myform").submit(function(){
    return !!$.trim($("#content").val());
    });
    });
    </script>
    </head><body>
    <form id="myform" name="myform" action="tset2.html" >
      文字不为空才能提交:
      <input id="content" type="text" value=""/>
      <input type="submit" id="submita" value="提交"/>
    </form>
    </body>
    </html>
      

  5.   

    再给一个不用框架的:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript">
    function checkform(){
    return !!document.getElementById("content").value;
    }
    </script>
    </head><body>
    <form id="myform" name="myform" action="tset2.asp" onsubmit="return checkform();">
      文字不为空才能提交:
      <input id="content" type="text" value=""/>
      <input type="submit" id="submita" value="提交"/>
    </form>
    </body>
    </html>
      

  6.   

    to:pillar0514 ,再次感谢就拿你有框加的说,唯一不同的是,我多加了一个butn,其实,在我的网页里是一个treeview
    <form id="myform" name="myform" action="tset2.html" >
      文字不为空才能提交:
      <input id="content" type="text" value=""/>
      <input type="submit" id="submita" value="提交"/>
      <input type="submit" id="submita" value="提交2"/>
    </form>
     
     当条件满足时,(也就是这里的文本框不能为空),阻止提交,但这时我需要点"提交2"按钮postback页面,点第一次没有反应,点第二次以后才可以提交见贴 http://topic.csdn.net/u/20090721/16/22623d9f-c5be-4096-b2c4-e6df5d57f31a.html
      

  7.   

    我还是没太明白你的意思,假定你是要用2个按钮分别去做不同的事情或者判断,不如不要加submit按钮,用type="button"类型的。然后用JS控制提交表单。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    $("#submita").click(function(){
    if(!!$.trim($("#content").val())){
    $("#myform").submit(); //JS执行提交表单,你也可以去做其他动作
    }
    });
    $("#submita2").click(function(){
    if(!$.trim($("#content").val())){
    $("#myform").submit(); //JS执行提交表单,你也可以去做其他动作
    }
    });
    });
    </script>
    </head><body>
    <form id="myform" name="myform" action="test2.html" >
      <input id="content" type="text" value=""/>
      <br/>文字不为空才能提交:<input type="button" id="submita" value="提交"/>
      <br/>文字为空才能提交:<input type="button" id="submita2" value="提交2"/> 
    </form>
    </body>
    </html>
      

  8.   

    to:pillar0514兄,先前说了,我为了简单说事,这里用submita2来比喻,其实,那个按钮2是treeview控件,更准确的说是asp.net radcombox里的radtreeview我用"#btnAddNew" 按钮提交表单,前提是一组checkbox至少要选一个,如果一个也没有选我就阻止提交,这时我要点treeview再次提交表单,以改变页面的一些逻辑.点treeview第一次没有反应,第二次以后才行$(document).ready(function() {
      $('#tjsubmit').click(function(event) {
                        var a = $(":checkbox:checked");
                        if (a.length < 1) {
                            alert("至少选一个部门"); //给出提示
                            event.preventDefault();  //阻止提交,阻止成功,但紧跟着我要点treeivew
                                                      //提交页面,以改变一些条件,
                                                      //点击第一次没有反应,第二次以后才可以
                        }
                });        }); 
    不知道这次听明白了没有?感谢你的关注,期待结果!!!
      

  9.   

    return false 就可以了啊
      

  10.   

    我明白你的意思了,但是我这里没有.net开发环境,怕是没法给你测试过的代码了。
    我觉得我在10楼的代码应该能帮你解决这个问题。
    表单的提交不用直接用submit按钮实现,你的treeview按钮可能就是一个submit按钮。
    我不知道你能不能改动treeview按钮的提交事件,如果不能,你试试就像我代码里面的例子一样,把submita2的提交事件用JS来控制,而不是使用submit按钮。
    这样避免了和treeview的冲突,纯粹只是一个按钮点击事件,JS触发提交表单事件(条件不满足的时候不触发提交事件,这样就没有了return false使得表单失效)。
    实在不行,构建一个隐藏的表单,通过JS让2个表单数据同步。把你的submita按钮和这个treeview所在的表单分离出去。
      

  11.   

    提交表单:  $("#Form1").submit();
    阻止提交:   $("#Form1").submit(function () {
                    return false;
                });HTML:      <form id="Form1" runat="server"></form>