2016-04-12 2 views
2

Я пытаюсь войти сообщение от отправить handler..and он не работает ..подчиненной формы обработчик не получаю вызывается

HTML код

<body> 
<div class="table"> 
    <div class="thead"> 
     <div class="tr"> 
      <div class="td" style="background: #ffffff ;color:black">ABC</div> 
      <div class="td">123</div> 
     </div> 
    </div> 
    <div class="tbody"> 
     <form id="form1_id" name="sa" class="tr editing"> 
      <div class="td thead">test</div> 
      <div class="td"><input type="number" id="sa_cr1" onchange="add('form1',1)"></div> 
      <div class="td"><input type="number" id="sa_cr2" onchange="add('form1',2)"></div> 
     </form> 
     <form id="form2_id" name="bc" class="tr editing"> 
      <div class="td thead">test1</div> 
      <div class="td"><input type="number" id="bc_cr1" onchange="add('form2', 1)"></div> 
      <div class="td"><input type="number" id="bc_cr2" onchange="add('form2', 2)"></div> 
     </form> 
    </div> 
    <button type="submit" value="Store" onclick="submitForms();"> </button> 
    </div> 
</body> 

JS КОД

function submitForms(){ 
    $('#form1_id')[0].submit(); 
    return false; 
} 

$("#form1_id").on("submit", function(event) // I tried both "submit" and "onsubmit" 
{ 
     console.log("Handler for .submit() called."); 
     event.preventDefault(); 
}); 
function add(str, num){}; 

Вы также можете просмотреть положить в https://jsfiddle.net/mdnak/b3z3h3jn/ Я в принципе хочу, чтобы console.log("Handler for .submit() called."); получить колл ... Пожалуйста, помогите ...

ответ

0
function submitForms(){ 
    $('#form1_id')[0].submit(); 
    return false; 

} 

представит вашу форму эффективной перезагрузки страницы. Сначала return false, а затем отправьте форму.

+0

Но я не вижу сообщение журнала в консоли после предложенного изменения ... Я хочу убедиться, что он работает, потому что я буду передавать данные нескольких форм одним нажатием кнопки, используя ajaxSubmit api из http://jquery.malsup.com/form/#getting-started – mdnak

0

Попробуйте это:

$(document).ready(function(){ 

$("#submitbtn").click(function(){ 
    $('#form1_id').submit(); 
    return false; 

}); 

$("#form1_id").submit(function(event) 
{ 
     alert("Handler for .submit() called."); 
     event.preventDefault(); 
}); 
function add(str, num){}; 

}); 

Как вы однозначно выбрать # form1_id из, вы можете сразу представить, как описано выше, и нет необходимости, чтобы получить первый элемент его, как это обыкновение давать множество форм $('#form1_id')[0]

и заменить ниже линии

<button type="submit" value="Store" onclick="submitForms();"> </button> 

с

<button type="button" id="submitbtn"> store </button> 
+0

Спасибо, сэр ... Это решило мою проблему !! Но мне все же нужно выяснить, почему этот код, хотя он по-другому, не работал ... это о массиве. [0] .. Еще раз спасибо! – mdnak

+0

Было несколько вещей, которые я наблюдал прежде всего: '$ ('# form1_id') [0]', а другой - кнопка вне тега формы, но введите submit, где это будет shoud'nt be. поскольку кнопка submit всегда должна находиться в теге

, так что всякий раз, когда вы нажимаете на нее, она будет отправлять соответствующую форму. Но в вашем случае это другое, поскольку у вас две формы, и вы обрабатываете формы с помощью Javascript, поэтому здесь нам не нужна кнопка отправки. все, что вам нужно - это событие для выполнения кода, который заботится о представлении. – kakurala