2016-08-19 157 views
-1

尝试构建一个功能,其中AT至少需要一对字段对s_AAA/s_BBB是要提交的表单所必需的。有一个oppurtunity供用户提交多达5 s_AAA/s_BBB组合。可以将此视为一种可以引用五位朋友的形式,但必须至少提交1才能提交表单。如何制作所需的第一对字段,其余不要求

任何帮助表示赞赏!

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script> 
    <script type="text/javascript">  
    (function ($, W, D) { 
     var SIGNUPVALIDATION = {}; 

     SIGNUPVALIDATION.UTIL = { 
      setupFormValidation: function() { 
       //form validation rules 
       $("#friend_req").validate({ 
        rules: { 
         s_referee_email: "required", 
         s_referee_fname: "required", 

        }, 
        messages: { 
         s_referee_email: "Please enter at least one friend's email address", 
         s_referee_fname: "Please enter your friends first name", 
        }, 
        submitHandler: function (form) { 
         form.submit(); 
        } 
       }); 
      } 
     } 
     //when the DOM has loaded setup form validation rules 
     $(D).ready(function ($) { 
      SIGNUPVALIDATION.UTIL.setupFormValidation(); 
     }); 

    })(jQuery, window, document); 
    </script> 
+0

请为您所使用的确认库​​添加标签或更新您的问题。 –

+0

补充,谢谢Mike的建议! – badsmell

回答

0

除非您专门用javascript来做,否则您只需将required添加到HTML5表单即可。例如:

<input type="text" name="usrname" required> 

的问题就变成了Safari浏览器 - 如果需要的字段为空白字符也将不渲染错误给用户,这将不提交表单。您的用户将坐在那里不知道为什么表单不会提交。在这种情况下,你可以使用一些JS来做到这一点。你可能会问,为什么不直接用JS做,然后跳过HTML验证?好吧,我想这是个人决定,但我喜欢使用组合方法,因为我喜欢HTML验证在其他浏览器中为您提供的小弹出窗口。

如果你要做到这一点的JS,你要创建,抓住要验证像这样的输入的功能:

nameInput = document.querySelector("#name").value 

并从那里你可以检查是否有长度输入,如果你想确保它符合一定的最小字符或者你可以检查,看看是否有使用.test()有类似的值:

/^[a-zA-Z]+/.test(nameInput) 

从那里,如果是这样,你继续提交,如果没有,那么你向我们发出错误er:

*assuming you have a div with a class of "error", if not you could create one dynamically 

else { 
    error.innerHTML = "You must provide a name."; 
} 
+0

谢谢Moly。使用HTML5解决方案是一个不错的优雅解决方案!谢谢!不要让阿贾克斯跑... – badsmell

+0

欢迎您!如果这解决了您的问题,那么请考虑将其标记为解决方案;) – HolyMoly

+1

对不起,我将这个新堆栈标记为解决方案。 Thakns HolyMoly。 – badsmell

相关问题