我用DW CS4 spry制做的表单验证之后,加上了onsubmit="disable() 目的是为了制提交之后提交按钮变灰色。避免重复提交。但是加上了之后。。SPRY的验证就全失效了。请问怎么解决呀?我用DW CS4版本的 SPRY 做了一个表单验证效果。。然后为了防止重复提交加了一个提交之后提交按钮变灰的效果。可是加上之后SPRY的表单验证完全没用了。。请问这个怎么解决呀??网址: http://www.bxzp.net/1.asp
这个是没加变灰效果的。就没有问题。
http://www.bxzp.net/2.asp
这个加上了变灰效果之后。SPRY制做的验证效果就没用了。直接就提交了。。请问这个怎么解决?? 谢谢。

解决方案 »

  1.   


    提交之后 可以获取该对象按钮 
    然后 disabled
      

  2.   

    那个没用过
    但是应该是事件被覆盖了~~~
    估计你那个库也是用onclick和onsubmit的
      

  3.   

    <script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
    <link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
    <script>
    function disable()
    {
    document.form1.submit.disabled=true;
    }
    </script>
    </head><body><form id="form1" name="form1" method="post" action="?id=2" onsubmit="disable()">
      <span id="sprytextfield1">
      <label>
        <input type="text" name="ccc" id="text1" />
      </label>
      <span class="textfieldRequiredMsg">需要提供一个值。</span><span class="textfieldMinCharsMsg">不符合最小字符数要求。</span><span class="textfieldMaxCharsMsg">已超过最大字符数。</span></span>
      <label>
        最少五字 最多20字
          <input type="submit" name="submit" value="提交" />
      </label></form>
    <script type="text/javascript">
    <!--
    var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {minChars:5, maxChars:20});
    //-->
    </script>我把代码直接放上来了本来应该是提交之后不够5字或超过20字是不让提交的。但是我让提交之后提交按钮变灰的代码加上之后就直接提交了。不经过字数验证。。而那个 www.bxzp.net/1.asp  这个就是没问题。请问怎么解决呀?
      

  4.   

    代码我能看到 var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {minChars:5, maxChars:20});
    和你的onsubmit事件重叠了
    不是附加上去的
      

  5.   

    确实是3楼说的。是用onclick和onsubmit的 可是怎么解决呀??
      

  6.   

    <script type="text/javascript">
    window.onload = function() {
       window.event ? document.form1.attachEvent("onsubmit",disabled):document.form1.addEventListener("onsubmit",disabled);
    }
    </script>
      

  7.   

    <script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"> </script> 
      <link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" /> 
      <script> 
    window.onload = function() {
      (!+'\v1') ? document.form1.attachEvent("onsubmit",disabled):document.form1.addEventListener("onsubmit",disabled);
    }
     function disable() 
     { 
     document.form1.submit.disabled=true; 
     } 
      </script> 
      </head> 
      
      <body> 
      
      <form id="form1" name="form1" method="post" action="?id=2"> 
        <span id="sprytextfield1"> 
        <label> 
          <input type="text" name="ccc" id="text1" /> 
        </label> 
        <span class="textfieldRequiredMsg">需要提供一个值。 </span> <span class="textfieldMinCharsMsg">不符合最小字符数要求。 </span> <span class="textfieldMaxCharsMsg">已超过最大字符数。 </span> </span> 
        <label> 
         最少五字 最多20字 
            <input type="submit" name="submit" value="提交" /> 
        </label> 
      
      </form> 
      <script type="text/javascript"> 
      <!-- 
     var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none", {minChars:5, maxChars:20}); 
     //--> 
      </script>
      

  8.   

    我加上之后提示错误 disabled 未定义
      

  9.   

    CJ205 十分感谢,但是这段代码虽然挺好。不过还有问题。虽然解决了那个问题。又有新问题出现就是我定义的字数不超过五字的时候禁止提交。可是同时后边的提交按钮还是变灰了。而更改过后当前边的字数超过五之后也无法提交了。
    这个是网址。
    http://www.bxzp.net/c.html
    直接点一下就知道我说的是怎么回事了。谢谢。