Показать сообщение отдельно
  #1 (permalink)  
Старый 13.02.2017, 09:23
Новичок на форуме
Отправить личное сообщение для S2pidsMan Посмотреть профиль Найти все сообщения от S2pidsMan
 
Регистрация: 13.02.2017
Сообщений: 4

Не работает более 4 событий (Я нуб)
Здравствуйте.
Столкнулся с такой проблемой на сайте с джумлой и компонентом джумшопинг. По данной проблеме на форумах джумлы мне к сожалению не смогли помочь, по этому обращаюсь к Гуру js.

Что бы вы поняли все в точности:
У джумшопинга, есть встроенный модуль pm_debit, он даже возможность в оплате выставлять бик, банк, ибан, имя.
Вот как выглядит оригинальный скрипт:
Код:
<?php 
/**
* @version      4.4.1 10.02.2014
* @author       MAXXmarketing GmbH
* @package      Jshopping
* @copyright    Copyright (C) 2010 webdesigner-profi.de. All rights reserved.
* @license      GNU/GPL
*/
defined('_JEXEC') or die('Restricted access');
?>
<table>
   <tr>
     <td width="200">
       <?php echo _JSHOP_ACCOUNT_HOLDER;?>
     </td>
     <td>
       <input type="text" class="inputbox" name="params[pm_debit][acc_holder]" id="params_pm_debit_acc_holder" value="<?php print $params['acc_holder']?>"/>
     </td>
   </tr>
   <tr>
     <td>
       <?php echo _JSHOP_IBAN?>
     </td>
     <td>
       <input type="text" class="inputbox" name="params[pm_debit][bank_iban]" id="params_pm_debit_bank_iban" value="<?php print $params['bank_iban']?>"/>
     </td>
   </tr>
   <tr>
     <td>
       <?php echo _JSHOP_BIC_BIC?>
     </td>
     <td>
       <input type="text" class="inputbox" name="params[pm_debit][bank_bic]" id="params_pm_debit_bank_bic" value="<?php print $params['bank_bic']?>"/>
     </td>
   </tr>
   <tr>
     <td>
       <?php echo _JSHOP_BANK?>
     </td>
     <td>
       <input type="text" class="inputbox" name="params[pm_debit][bank]" id="params_pm_debit_bank" value="<?php print $params['bank']?>"/>
     </td>
   </tr>
</table>
<script type="text/javascript">
  function check_pm_debit(){
    var ar_focus=new Array();
    var error=0;
    unhighlightField('payment_form');
    if (isEmpty($F_("params_pm_debit_acc_holder"))) {
        ar_focus[ar_focus.length]="params_pm_debit_acc_holder";
        error=1;
    }
    if (isEmpty($F_("params_pm_debit_bank_iban"))) {
        ar_focus[ar_focus.length]="params_pm_debit_bank_iban";
        error=1;
    }
    if (isEmpty($F_("params_pm_debit_bank"))) {
        ar_focus[ar_focus.length]="params_pm_debit_bank";
        error=1;
    }
    if (error){
        $_(ar_focus[0]).focus();
        for (var i=0; i<ar_focus.length; i++ ){
           highlightField(ar_focus[i]);
        }
        return false;
    }
    jQuery('#payment_form').submit();
  }
 </script>
Вот этот скрипт отвечает за проверку заполняемости полей и передачу на отправку:
Код:
<script type="text/javascript">
  function check_pm_debit(){
    var ar_focus=new Array();
    var error=0;
    unhighlightField('payment_form');
    if (isEmpty($F_("params_pm_debit_acc_holder"))) {
        ar_focus[ar_focus.length]="params_pm_debit_acc_holder";
        error=1;
    }
    if (isEmpty($F_("params_pm_debit_bank_iban"))) {
        ar_focus[ar_focus.length]="params_pm_debit_bank_iban";
        error=1;
    }
    if (isEmpty($F_("params_pm_debit_bank"))) {
        ar_focus[ar_focus.length]="params_pm_debit_bank";
        error=1;
    }
    if (error){
        $_(ar_focus[0]).focus();
        for (var i=0; i<ar_focus.length; i++ ){
           highlightField(ar_focus[i]);
        }
        return false;
    }
    jQuery('#payment_form').submit();
  }
 </script>
С этим все в порядке, проблем ни каких нету.

В данном скрипте можно выводить свои дополнительные поля и их передачу. Я переписал скрипт и получилось следующее:
Код:
<?php 
/**
* @version      4.4.1 10.02.2014
* @author       MAXXmarketing GmbH
* @package      Jshopping
* @copyright    Copyright (C) 2010 webdesigner-profi.de. All rights reserved.
* @license      GNU/GPL
*/
defined('_JEXEC') or die('Restricted access');
?>
<table>
   <tr>
     <td width="200">
       <?php echo _JSHOP_ACCOUNT_NAME;?>
     </td>
     <td>
       <input type="text" class="inputbox"  name="params[pm_debit][name]" id="params_pm_debit_name" value="<?php print $params['name']?>"/>
     </td>
   </tr>
   
    <tr>
     <td width="200">
       <?php echo "Юридический адрес";?>
     </td>
     <td>
       <input type="text" class="inputbox" name="params[pm_debit][faddr]" id="params_pm_debit_faddr" value="<?php print $params['faddr']?>"/>
     </td>
   </tr>
   
   <tr>
     <td width="200">
       <?php echo "Фактический адрес";?>
     </td>
     <td>
       <input type="text" class="inputbox" name="params[pm_debit][addr]" id="params_pm_debit_addr" value="<?php print $params['addr']?>"/>
     </td>
   </tr>
   
   
   <tr>
     <td width="200">
       <?php echo "ИНН/КПП";?>
     </td>
     <td>
       <input type="text" class="inputbox" name="params[pm_debit][inn]" id="params_pm_debit_inn" value="<?php print $params['inn']?>"/>
     </td>
   </tr>
   
   
   <tr>
     <td width="200">
       <?php echo "ОКПО";?>
     </td>
     <td>
       <input type="text" class="inputbox" name="params[pm_debit][okpo]" id="params_pm_debit_okpo" value="<?php print $params['okpo']?>"/>
     </td>
   </tr>
   
   <tr>
     <td width="200">
       <?php echo "Наименования банка";?>
     </td>
     <td>
       <input type="text" class="inputbox" name="params[pm_debit][nazb]" id="params_pm_debit_nazb" value="<?php print $params['nazb']?>"/>
     </td>
   </tr>
   <tr>
     <td width="200">
       <?php echo "БИК";?>
     </td>
     <td>
       <input type="text" class="inputbox" name="params[pm_debit][bik]" id="params_pm_debit_bik" value="<?php print $params['bik']?>"/>
     </td>
   </tr>
   <tr>
     <td width="200">
       <?php echo "Р/С";?>
     </td>
     <td>
       <input type="text" class="inputbox" name="params[pm_debit][ras]" id="params_pm_debit_ras" value="<?php print $params['ras']?>"/>
     </td>
   </tr>
   <tr>
     <td width="200">
       <?php echo "К/С";?>
     </td>
     <td>
       <input type="text" class="inputbox" name="params[pm_debit][ks]" id="params_pm_debit_ks" value="<?php print $params['ks']?>"/>
     </td>
   </tr>
   <tr>
     <td width="200">
       <?php echo "Ген. директор";?>
     </td>
     <td>
       <input type="text" class="inputbox" name="params[pm_debit][gend]" id="params_pm_debit_gend" value="<?php print $params['gend']?>"/>
     </td>
   </tr>
   <tr>
     <td width="200">
       <?php echo "Телефон";?>
     </td>
     <td>
       <input type="text" class="inputbox" name="params[pm_debit][tele]" id="params_pm_debit_tele" value="<?php print $params['tele']?>"/>
     </td>
   </tr>
</table>
<script type="text/javascript">
  function check_pm_debit(){
    var ar_focus=new Array();
    var error=0;
    unhighlightField('payment_form');
	if (isEmpty($F_("params_pm_debit_name"))) {
        ar_focus[ar_focus.length]="params_pm_debit_name";
        error=1;
    }
	if (isEmpty($F_("params_pm_debit_addr"))) {
        ar_focus[ar_focus.length]="params_pm_debit_addr";
        error=1;
    }
	if (isEmpty($F_("params_pm_debit_faddr"))) {
        ar_focus[ar_focus.length]="params_pm_debit_faddr";
        error=1;
    }
	if (isEmpty($F_("params_pm_debit_inn"))) {
        ar_focus[ar_focus.length]="params_pm_debit_inn";
        error=1;
    }
	if (isEmpty($F_("params_pm_debit_okpo"))) {
        ar_focus[ar_focus.length]="params_pm_debit_okpo";
        error=1;
    }
	if (isEmpty($F_("params_pm_debit_nazbe"))) {
        ar_focus[ar_focus.length]="params_pm_debit_nazb";
        error=1;
    }
	if (isEmpty($F_("params_pm_debit_ras"))) {
        ar_focus[ar_focus.length]="params_pm_debit_ras";
        error=1;
    }
	if (isEmpty($F_("params_pm_debit_ks"))) {
        ar_focus[ar_focus.length]="params_pm_debit_ks";
        error=1;
    }
	if (isEmpty($F_("params_pm_debit_bik"))) {
        ar_focus[ar_focus.length]="params_pm_debit_bik";
        error=1;
    }
	if (isEmpty($F_("params_pm_debit_gend"))) {
        ar_focus[ar_focus.length]="params_pm_debit_gend";
        error=1;
    }
	if (isEmpty($F_("params_pm_debit_tele"))) {
        ar_focus[ar_focus.length]="params_pm_debit_tele";
        error=1;
    }
	
    if (error){
        $_(ar_focus[0]).focus();
        for (var i=0; i<ar_focus.length; i++ ){
           highlightField(ar_focus[i]);
        }
        return false;
    }
    jQuery('#payment_form').submit();
  }
 </script>
В моем варианте - все отправляется и передается как мне и нужно. НО!!! появилась проблемы проверки заполняемости форм.
Если оставить допустим 4 проверки, любого поля:
Код:
<script type="text/javascript">
  function check_pm_debit(){
    var ar_focus=new Array();
    var error=0;
    unhighlightField('payment_form');
	if (isEmpty($F_("params_pm_debit_ks"))) {
        ar_focus[ar_focus.length]="params_pm_debit_ks";
        error=1;
    }
	if (isEmpty($F_("params_pm_debit_bik"))) {
        ar_focus[ar_focus.length]="params_pm_debit_bik";
        error=1;
    }
	if (isEmpty($F_("params_pm_debit_gend"))) {
        ar_focus[ar_focus.length]="params_pm_debit_gend";
        error=1;
    }
	if (isEmpty($F_("params_pm_debit_tele"))) {
        ar_focus[ar_focus.length]="params_pm_debit_tele";
        error=1;
    }
	
    if (error){
        $_(ar_focus[0]).focus();
        for (var i=0; i<ar_focus.length; i++ ){
           highlightField(ar_focus[i]);
        }
        return false;
    }
    jQuery('#payment_form').submit();
  }
 </script>
То эти 4 поля проверяются и в случае не заполнения - появляется error.
Но если добавить ПЯТУЮ проверку и последующие, то ни одна проверка не срабатывает.

Помогите пожалуйста исправить проблему.
Ответить с цитированием