Проблема с формой Javascript, работающей последовательно с Ajax для входа в частный магазин Magento - PullRequest
1 голос
/ 23 июня 2011

Мой веб-разработчик бросил меня, и моя форма не всегда работает.

При нажатии он ничего не делает (просто показывает ссылку "javascript :;" в строке состояния браузера), но иногда это работает ...

Я искалвезде для решения, но мне не повезло.Может я не знаю с чего начать !!Действительно был бы признателен за помощь: я новичок и боролся.СПАСИБО !!

<head>
   <link rel="stylesheet" type="text/css" href="css.css" />
      <script type="text/javascript" src="prototype.js" ></script>
      <script type="text/javascript">
          function login(){
             if($('username').value == '') alert('Username cannot be left blank');
             if($('password').value == '') alert('Password cannot be left blank');
      new Ajax.Request('http://www.website.com/index.php/customer/account/ajaxLogin',
      {
   method:'post',
      parameters: 'username='+$('username').value+'&password='+$('password').value,
         onSuccess: function(transport){
             if (transport && transport.responseText){
      try{
         response = eval('(' + transport.responseText + ')');
         }
     catch (e) {
    response = {};
     }
   }

   if (response.success){
                           location.href="http://www.website.com/index.php"
   }else{
       if ((typeof response.message) == 'string') {
    alert(response.message);
       } 
       return false;
   }
 },
   onFailure: function(){ alert('Something went wrong...') }
   });
 }
   </script>
      </head>

Это HTML-форма

<form name="frm" method="post" action="#" id="frm">
    <ul>
        <li><input type="text" class="rounded" name="username" id="username" value="Username" /></li>
        <li><input type="password" class="rounded" name="password" id="password" value="Password" /></li>
        <li><a href="javascript:;" onClick="login();return false;"><img src="splash/button.png" alt="" /></a></li>
                   </ul>
</form>

Вызов файла prototype.js относится к среде Javascript prototype.js MIT, версия 1.6.1

1 Ответ

2 голосов
/ 23 июня 2011

попробуйте изменить это:

<a href="javascript:;" onClick="login();return false;">

в это:

<a href="javascript:login();return false;">

Надеюсь, это поможет

редактирование: Похоже, ваш JS-код написан плохо. Давайте рассмотрим строки:

     if($('username').value == '') alert('Username cannot be left blank');
     if($('password').value == '') alert('Password cannot be left blank');

Даже если поля для входа оставлены пустыми, запрос будет отправлен. Изменить на:

     if($('username').value == '') {
              alert('Username cannot be left blank');
              return false;
     }
     if($('password').value == '') {
              alert('Password cannot be left blank');
              return false;
     }

Другие вещи должны быть в порядке.

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