2013-10-08 136 views
3

我正在使用一些javascript來驗證表單。它在Firefox,IE10和Chrome中運行良好。有沒有辦法讓下面的代碼在Safari和IE9中工作?當點擊捐贈按鈕時,應該要求輸入學生的姓名。但在Safari和IE9中,必填字段未被識別,它只是將您帶到PayPal的權利。表單驗證Javascript

<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 protected]" /><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> 
+1

我敢肯定,有一種方法,但你根本沒有告訴我們實際問題是從什麼開始的。爲什麼不使用現代DOM方法,比如getElementById? – thescientist

+0

將表單分解爲最小字段找到罪魁禍首字段。 –

+0

是IE正在報告以下錯誤。 消息: 'document.forms.myForm.os0.value' 爲空或不是對象 行:108 字符:1 代碼:0 – user2859888

回答

2

試試這個(不知道爲什麼你需要form element):

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

我試過代碼和IE引發這個錯誤:網頁錯誤的詳細信息 消息:'document.getElementById(...)'爲空或不是對象 代碼:0 但它仍然適用於Firefox。 – user2859888

+0

當他把getElementsByname放入他的答案時,爲什麼你的錯誤引用getElementById? –

+0

@CollinGrady,我之前有過,然後糾正。他可能在糾正之前嘗試過。 – Kaf

0

這不回答你的問題是什麼,但它可以讓你解決問題。

你熟悉這個jQuery插件:

http://jqueryvalidation.org/documentation/

要使用它,你需要在你的文檔的頭部標記加載兩個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

+0

我不熟悉jquery插件。我在頭標中試過,但仍無濟於事。 – user2859888

+0

這不是自動化的......你需要學習文檔,然後編寫你的文檔來使用它。 – gibberish

+0

另請參閱[此SO帖子](http://stackoverflow.com/questions/19259078/genvalidator-check-for-checkbox-in-form-validation/19283603#19283603)re form validation – gibberish

1

希望這也太麻煩全部幫助:

var x=document.myForm.os0.value;