【问题标题】:Form Validation Javascript表单验证 Javascript
【发布时间】:2013-10-09 03:22:12
【问题描述】:

我正在使用一些 javascript 来验证表单。它在 Firefox、IE10 和 Chrome 中运行良好。有没有办法让下面的代码在 Safari 和 IE9 中工作?单击捐赠按钮时,应要求输入学生姓名。但在 Safari 和 IE9 中,必填字段不被识别,它只是将您带到贝宝。

 <script>
function validateForm()
{
var x=document.forms["myForm"]["os0"].value;
if (x==null || x=="")
  {
  alert("Please Enter the Child Your Sponsoring and Click Donate");
  return false;
  }
}
</script>
<form name="myForm" action="https://www.paypal.com/cgi-bin/webscr" onsubmit="return  validateForm()" method="post">

<input type="hidden" name="on0" value="Child Sponsored Name" />Please enter the student's First and Last Name Your Sponsoring and click Donate

<input type="text" maxlength="200" name="os0" required/><input type="hidden" name="cmd" value="_donations" />

<input type="hidden" name="business" value="email@website.com" /><input type="hidden" name="lc" value="US" />

<input type="hidden" name="item_name" value="5k Run Fundraiser" />

<input type="hidden" name="no_note" value="0" />

<input type="hidden" name="cn" value="ADD DONOR NAME" />

<input type="hidden" name="no_shipping" value="2" />

<input type="hidden" name="currency_code" value="USD" />

<input type="hidden" name="bn" value="PP-DonationsBF:btn_donateCC_LG.gif:NonHosted" />

<input type="image" alt="PayPal - The safer, easier way to pay online!" name="submit" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" />

<img alt="" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" border="0" />

</form>

【问题讨论】:

  • 我确信有办法,但你根本没有告诉我们真正的问题是从什么开始的。为什么不使用现代 DOM 方法,例如 getElementById?
  • 将表单分解为最少的字段,找到罪魁祸首字段。
  • 是的 IE 报告以下错误。消息:'document.forms.myForm.os0.value' 为空或不是对象行:108 字符:1 代码:0
  • var x=document.forms["myForm"]["os0"].value 是一种过时的 DOM 节点查询方式。
  • 它适用于 Safari 5.1.10。

标签: javascript html


【解决方案1】:

试试这个(不知道为什么需要form element):

var x = document.getElementsByName("os0")[0].value;

【讨论】:

  • 我尝试了该代码,但 IE 抛出此错误:网页错误详细信息消息:'document.getElementById(...)' is null or not an object Code: 0 但它仍然适用于 firefox。
  • 当他把 getElementsByname 放在他的答案中时,为什么你的错误引用 getElementById?
  • @CollinGrady,我之前有过,然后更正了。他可能在纠正之前尝试过。
  • 感谢这个解决方案对 Kaf 有效!我忘记刷新页面了。
【解决方案2】:

希望这也能有所帮助:

var x=document.myForm.os0.value;

【讨论】:

    【解决方案3】:

    这并不能回答您的问题是什么,但它可能会帮助您解决问题。

    你熟悉这个 jQuery 插件吗:

    http://jqueryvalidation.org/documentation/

    要使用它,您需要在文档的 head 标签中加载 jQuery 库和 jQueryValidation 插件:

    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
        <script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
    </head>
    

    See this demo

    【讨论】:

    • 我不熟悉 jquery 插件。我在 head 标签中尝试过,但仍然无济于事。
    • 这不是自动的...您需要研究文档,然后对文档进行编码才能使用它。
    • 另见this SO post reform validation
    猜你喜欢
    • 2015-12-04
    • 2014-11-20
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 2011-01-20
    相关资源
    最近更新 更多