Здравствуйте.
Столкнулся с такой проблемой на сайте с джумлой и компонентом джумшопинг. По данной проблеме на форумах джумлы мне к сожалению не смогли помочь, по этому обращаюсь к Гуру 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.
Но если добавить ПЯТУЮ проверку и последующие, то ни одна проверка не срабатывает.
Помогите пожалуйста исправить проблему.