2015-06-05 2 views
0

У меня есть ссылка с onclick attr, чтобы отправить мою форму. Как это:Onclick form submit as button submit

<a href="javascript:void(0);" onclick="myFunc()">lorem ipsum</a> 

function myFunc() { 
$('.ajaxform').submit(); 
} 

Проблема заключается .. Я использую функцию Ajax, чтобы сделать без обновления представить .. И у меня есть еще один сценарий, как это:

jQuery(document).ready(function(){ 

    jQuery('.ajaxform').submit(function() { 

     $.ajax({ 
      url  : $(this).attr('action'), 
      type : $(this).attr('method'), 
      dataType: 'json', 
      data : $(this).serialize(), 
      success : function(data) { 
         for(var id in data) { 
          jQuery('#' + id).html(data[id]); 
         } 
         } 
     }); 

     return false; 
    }); 

}); 

Если я использую введите кнопку типа представить работу ajax .. Но он не работает с помощью onclick submit ... Как я могу это решить?

Спасибо.

+1

Вы используете '' ajaxform' и myForm', который является правильным класса –

+0

кроме того, что это прекрасно http://jsfiddle.net/arunpjohny/um9acxfw/2/ –

+0

извините .. правильно это ajaxform –

ответ

0

Если вы используете атрибут <a> то вместо встроенного onclick атрибута написать функцию click отдельно, а затем использовать event.preventDefault(); и затем отправить форму

<a id='someId' href="javascript:void(0);" onclick="myFunc()">Submit</a> //Give some id 
    $(function(){ 
    $('#someId').click(function(){ 
    event.preventDefault(); //This will prevent the default action of <a> attribute 

    $('.ajaxform').submit(function(){ 
     //write the functionality here 

     }); 

    }); 
    }); 
0

Вариант 1 Вы можете добавить CSS к отправке чтобы посмотреть ссылку и заменить ее ссылкой.

Вариант 2

HTML

<form id="form1" method="POST" action="#" > 
<input type="text" class="youwant" name="youwant" id="youwant" /> 
<a href="#" class="myform" id="myform">lorem ipsum</a> 
</form> 

JavaScript

jQuery(document).ready(function(){ 

    $('#myform').on("click", function(event) { 

     $.ajax({ 
      url  : $(this).attr('action'), 
      type : $(this).attr('method'), 
      dataType: 'json', 
      data : $(this).serialize(), 
      success : function(data) { 
         for(var id in data) { 
          jQuery('#' + id).html(data[id]); 
         } 
         } 
     }); 

     return false; 
    }); 

}); 

Я не пробовал, но это может помочь вам, просто дать попробовать и не отвечать если полезно.