2012-05-02 3 views
0

Я использую 2 поля ввода, первый - это истинный, другой будет скрыт сразу же за ним, используя position:fixed;, когда пользователь отправляет форму, будет подтверждение формы, если это исходное поле пустое, невидимый вход будет отображаться с красным фоном с предупреждающим сообщением. это работает, используя .show() после того, как он получил display:none;, тогда я написал еще один код в jquery, который заставляет этот сигнал ввода уходить, когда пользователь нажимает на него, означает, что он пытается получить доступ к исходному входу, чтобы он мог писать в нем , и это работает, используя .hide(); проблема в том, что когда я снова нажимаю кнопку «Отправить», вход предупреждения не появляется ... снова, в firefox; но он работает полностью в IE..show() .hide() не работает в FIREFOX, работая в IE

Вот HTML код:

<div style=" padding-top:2px; overflow:hidden; float:left "> 
<div style="float:left; "> 
<label for="email"> 
E-mail 
</label> 
<br> 
<div style="position:relative;"> 
<input class="inputtext" type="text" id="email" name="email" maxlength="32" style=" width:140px; height:15px;" tabindex=1/> 
<input class="inputtext" type="text" id="emailnotification" name="emailnotification" maxlength="32" style=" width:140px; background-color: rgb(220, 20, 60); color: white; z-index:20; display:none; height:15px; font-weight: bold; position:absolute; left:0px;"/> 
</div> 
</div> 

Теперь это часть функции проверки формы:

function validateForm() 
{ 

    var xe; 
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; 
    var xemail=document.forms["signinForm"]["email"].value; 
    if(xemail==null || xemail=="") 
     {$("#emailnotification").val("Email is Required"); 
     $("#emailnotification").show(); 

      xe=1; 
     } 
    else if (reg.test(xemail)==false) 
     { 

      $("#emailnotification").val("Email is not Valid"); 
      $("#emailnotification").show(); 
      xe=1; 
     } 

Теперь это код JQuery, который скрыть его обратно:

$("#emailnotification").click ( 
function() { 
$("#emailnotification").hide(); 
$("#email").focus(); 
$("#emailnotification").blur(); 
}); 
+2

_ "не работает в FireFox, работает в IE" _ это работает в IE, но не в FF? ** Я закрываю это не для настоящего вопроса ... ** :) – gdoron

+0

Это супер странно. –

+0

@gdoron Firefox супер глючит, это будет новый IE в другой год, и Chrome станет новым Firefox. – Petah

ответ

0

Works here in firefox

Хотя я изменил код немного ...

$("#emailnotification").blur(); бесполезно, так как вы сосредоточитесь в другом месте.

(я также использовал Родольфо предложение)

+0

Единственное различие между вашим кодом и моим кодом заключается в том, что вы удалили z-index, я сделал то же самое, но с помощью клавиши TAB я продолжал нажимать TAB, после нажатия кнопки submit во второй раз, нажатие TAB привело к фокусировке на второй вход, который я не мог видеть, исходный вход был перемещен над ним, есть проблема! –

+0

ОК, я исправил его, вместо того, чтобы использовать позицию: абсолютный и сохраняющий основной вход даже после отправки, я переключался между ними, когда один отображается, другой скрыт, спасибо всем –

+0

плюс это помогает хитрым людям, которые используют ТАБ, чтобы получить доступ к «скрытому» входу, который на самом деле не скрыт –

0

Я предполагаю, что проблема в var xemail=document.forms["signinForm"]["email"].value ... вы проверили с предупреждением, если xemail - то же самое в IE и FF? Я думаю, что FF и IE используют разные вещи по-разному. Просто чтобы проверить, попытаться дать «электронная почта» идентификатор и использовать, чтобы передать его вместо того, чтобы, как var xemail = $("#email").val()

+0

ИСКЛЮЧИТЕЛЬНО сказать то же самое. Используйте '$ ('# email')' или '$ ('# signinForm #email')', если существует более одной формы. –

+0

ну, даже если есть более одной формы, #email будет уникальным – Rodolfo

+0

та же проблема bro, она работает только 1 раз, она отображается в первый раз, когда я нажимаю на нее, чтобы скрыть ее, ее скрытую, но когда я нажимаю submit опять же, он снова не отображается –

Смежные вопросы