нужна проверка JavaScript и представление - PullRequest
0 голосов
/ 17 октября 2011

Я провел определенное количество проверок, но не могу помешать отправке формы, пожалуйста, помогите мне с проверкой других оставленных полей. Это мой код:

<form action="" method="post" id="contacts-form" onsubmit="return >
<fieldset>
<div class="field">
<input type="text" value="Name:" id="name" onfocus="if(this.value=='Name:'){this.value=''}" onblur="if(this.value==''){this.value='Name:'}" />`enter code here`
</div>
<div class="field">
<input type="text" value="E-mail:" id="email" onfocus="if(this.value=='E-mail:'){this.value=''}" onblur="if(this.value==''){this.value='E-mail:'}" />
</div>
<div>
<textarea cols="1" rows="1" id="message" onfocus="if(this.value=='Message:'){this.value=''}" onblur="if(this.value==''){this.value='Message:'}">Message:</textarea>
</div>
<div class="link"><a href="#" onclick="document.getElementById('contacts-form').reset()">Clear</a> &nbsp; &nbsp; <a href="#" onclick="document.getElementById('contacts-form').submit(validateForm();)">Send</a></div>'

код Js, который я использовалэто

function validateForm()
{
var x=document.forms["contacts-form"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");

if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Not a valid e-mail address");
return false;
}
}

Ответы [ 4 ]

0 голосов
/ 17 октября 2011

попробуй так:

</p> <pre><code>function validateForm() { var isValid =true; var x=document.forms["contacts-form"]["email"].value; var atpos=x.indexOf("@"); var dotpos=x.lastIndexOf("."); if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length) { alert("Not a valid e-mail address"); isValid= false; } retrun isValid; }

0 голосов
/ 17 октября 2011

Сделай так:

Заменить onsubmit="return > на onSubmit="return validateForm();"

и

Заменить

<div class="link"><a href="#" onclick="document.getElementById('contacts-form').reset()">Clear</a>    &nbsp; &nbsp; <a href="#" onclick="document.getElementById('contacts-form').submit()">Send</a></div>

Теперь вы выполняете validateForm при отправке, и в случае неудачи onSubmit получает false от вашей функции и не будет отправлять / перезагружать сайт.

Я не уверен, если это необходимо, но вы также можете добавить return true в свою функцию после if.

0 голосов
/ 17 октября 2011

Попробуйте что-то вроде этого (могут быть некоторые ошибки, потому что я писал без проверки):

function validateForm(){
var x=document.forms.contacts-form.email.value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");

if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length){
    alert("Not a valid e-mail address");
    return false;
}
else {
    document.forms.contacts-form.submit();
}
}

и html:

<form action='' name='contacts-form' method='post'>
<fieldset>
<div class="field">
<input type="text" value="Name:" id="name" onfocus="if(this.value=='Name:')            {this.value=''}" onblur="if(this.value==''){this.value='Name:'}" />`enter code here`
</div>
<div class="field">
<input type="text" value="E-mail:" id="email" onfocus="if(this.value=='E-mail:')        {this.value=''}" onblur="if(this.value==''){this.value='E-mail:'}" />
</div>
<div>
<textarea cols="1" rows="1" id="message" onfocus="if(this.value=='Message:')        {this.value=''}" onblur="if(this.value==''){this.value='Message:'}">Message:</textarea>
</div>
<div class="link"><a href="#" onclick="document.getElementById('contacts-vform').reset()">Clear</a> &nbsp; &nbsp; <button value="Send" onclick="validateForm()"></div>
</fieldset>
</form>
0 голосов
/ 17 октября 2011
 change onsubmit="return >
         onsubmit="return validateForm();"

, а также закройте теги form и fieldset, подобные этим

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...