2013-10-08 4 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' равно нулю или не является объектом Line: 108 Char: 1 Код: 0 – user2859888

ответ

2

Попробуйте это (не знаю, почему вам нужно form element):

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

Я пробовал этот код и IE выдает эту ошибку: Сведения об ошибке веб-страницы Сообщение: 'document.getElementById (...)' является нулевым или нет объектом Код: 0 Но он по-прежнему работает для firefox. – user2859888

+0

Почему ваша ссылка на ошибку getElementById, когда он положил getElementsByname в свой ответ? –

+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 valid validation – gibberish

1

надеюсь, что это слишком мыт помощь:

var x=document.myForm.os0.value; 
Смежные вопросы