【问题标题】:adding Form Validation Javascript of jquery?添加jQuery的表单验证Javascript?
【发布时间】:2011-02-28 22:14:40
【问题描述】:

如何添加内联验证以确保必须选择单选输入

<script type="text/javascript">
    function choosePage() {
        if(document.getElementById('weightloss').form1_option1.checked) {
            window.location.replace( "http://google.com/" );
        }
        if(document.getElementById('weightloss').form1_option2.checked) {
            window.location.replace( "http://yahoo.com/" );
        }
    }
</script>

<form id="weightloss">
     <input type="radio" id="form1_option1" name="weight-loss" value="5_day" class="plan">
     <label for="form1_option1"> 5 Day - All Inclusive Price</label><br>
     <input type="radio" id="form1_option2" name="weight-loss" value="7_day">
     <label for="form1_option2"> 7 Day - All Inclusive Price</label><br>
     <input type="button" value="Place Order" alt="Submit button" class="orange_btn" onclick="choosePage()">
</form>

【问题讨论】:

  • 编辑后的帖子包含一个代码块,因此所有标签都显示出来了......
  • 为什么不默认选择其中一台收音机?

标签: forms input jquery-validate validation


【解决方案1】:

您正在使用document.getElementById('weightloss'),但实际上没有任何元素具有 id 'weightloss'

试试这个

<script type="text/javascript">
    function choosePage() {
        if(document.getElementById('form1_option1').checked) {
            window.location.replace( "http://google.com/" );
        }
        if(document.getElementById('form1_option2').checked) {
            window.location.replace( "http://yahoo.com/" );
        }
    }
</script>

希望对你有所帮助。

【讨论】:

  • weightloss 是表格上的ID
  • 我只想在上面的代码中进一步添加验证..它完美无缺...做我想做的事...如果我选择一个选项,它会转到谷歌..如果另一个它去 yahoo.com..那是完美的..但我想要的是如果用户尝试提交之前...它应该提示他们选择一个。
  • key id 仅在所有无线电名称相同但传递不同值...无线电组时才有效。
【解决方案2】:

你只需要让 js 先评估表单。

<script type="text/javascript">
    function choosePage() {
        if(document.forms["weightloss"]["form1_option1"].checked == true) {
            window.location.replace( "http://google.com/" );
        }
        if(document.forms["weightloss"]["form1_option2"].checked == true) {
            window.location.replace( "http://yahoo.com/" );
        }
        else { alert('Please choose an option'); } // for inline alerts see below.
    }
</script>

对于内嵌文本警报,请尝试以下操作:

    else { my_message.innerHTML = "Please choose an option" }

向您的页面添加一个元素以包含消息:

    <p id="my_message"></p> <!-- when the form submits empty your message will appear here.

【讨论】:

  • 这是完美的..无论如何要让警报内联html文本?
  • 嘿道森,如果我有大约 20 个问题怎么办?
  • 更新了我对您的内联文本请求的回答。
  • 表单验证可以成为一个完整的项目。特别是,如果您有大量需要验证的字段,或者您的用户正在输入您没有预料到的数据。一个更简短的答案......虽然并不总是最优雅的 - 20 个问题 / 20 个验证 / 20 条消息有时是最简单的方法。
  • 有一些方法可以遍历表单,并捕获所有空的但必填字段。它更优雅,但超出了您的问题范围。谷歌搜索 JavaScript 表单验证。更好的是,尽你所能使用服务器端脚本 PHP、ASP 等。客户端验证可以很容易地被利用/绕过。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 2023-04-09
  • 2014-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多