2017-01-13 4 views
0

Я написал этот код JavaScript, чтобы выполнить проверку перед отправкой формы. Валидация работает нормально, но в то же время подает данные в базу данных. Я не хочу, чтобы он подчинялся, если это не так.Как проверить использование JavaScript перед отправкой формы в фреймворке Zend

Вот мой код:

<form action="<?= $this->form->getAction() ?>" method="<?= $this->form->getMethod() ?>" class="stdform stdform2" id="product" enctype="multipart/form-data"> 
       <?= $this->form->employee_id ?> 
       <p> 
        <?= $this->form->name ?> 
       </p>        
       <p> 
        <?= $this->form->type ?> 
       </p> 
       <p> 
        <?= $this->form->brand ?> 
       </p> 
       <p> 
        <?= $this->form->model ?> 
       </p> 
       <p> 
        <?= $this->form->condition ?> 
       </p> 
       <p> 
        <?= $this->form->about ?> 
       </p> 
       <p> 
        <?= $this->form->listedon ?> 
       </p> 
       <p> 
        <?php echo $this->form->reserved_price; ?> 
       </p> 
       <p> 
        <?php echo $this->form->Purchased_price; ?> 
       </p> 
       <p> 
        <?php echo $this->form->buy_now_price; ?> 
       </p> 
       <p> 
        <?= $this->form->sale_end_date ?> 
       </p> 

       <p class="stdformbutton"> 
        <?= $this->form->save ?> 
        <?= $this->form->cancel ?> 
       </p>  

      </form>       

и код JS я написал для нее ниже:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     // $("#type option[value='null']").attr("disabled","disabled"); 
var a2=parseInt($('#reserved_price').val()); 
        var a3=parseInt($('#Purchased_price').val()); 
        var a4=parseInt($('#buy_now_price').val()); 


$('#product').form2json({success: function() { 



        if(a2 >= a3 && a2 >= a4) 
        { 
         alert("Ensure the minimum price should be lesser than the Purchased and Buy now price"); 
        } 
        else 

      location.href="/sellproduct/index"; 

      } 
        });  
     $('#cancel').click(function() { 
      location.href="/sellproduct/index"; 
     }); 
     $('#listedon').val($.datepicker.formatDate("yy-mm-dd", new Date())) 
     $("#sale_end_date").datepicker({minDate:0, "dateFormat": 'yy-mm-dd', changeMonth: true, changeYear: true, firstDay: 1 }); 

    }); 
</script> 

Может кто-нибудь, пожалуйста, помогите мне, чтобы написать правильный код?

+0

Вы должны проверить на своем сервере. Проверка только на стороне клиента небезопасна, поскольку кто-то может отправлять данные на ваш скрипт из другой формы/страницы или просто редактировать страницу в браузере (firebug и т. Д.). – radicarl

ответ

0

Вы должны поставить return false заявления ниже вашей проверки, как это,

if(a2 >= a3 && a2 >= a4) 
{ 
    alert("Ensure the minimum price should be lesser than the Purchased and Buy now price"); 
    return false; 
} 

Надеется, что это помогает!

+0

он валидационный, но в то же время представляет значения также –

+0

Можете ли вы попробовать изменить свое действие 'form' как'

+0

его не работает, показывая ошибку" Ошибка синтаксического анализа: синтаксис ошибка, неожиданный «getAction» (T_STRING), ожидающий «,» или «;» " –

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