2016-11-23 21 views
-1

この問題は既に解決されていますが、私が試したすべての解決策がうまくいかない場合は申し訳ありません。私がしたいことは、フォーム要素が送信されたときに、いくつかのjQueryコードをトリガーすることです。 ここに私のコードです。jQueryイベントはHTMLフォームに送信されません。

JS:

$(document).ready(function() { 
    $('form').bind('submit', function() { 
     alert('hi'); 
      var word10 = <?php echo $word10; ?>; 
      var word20 = <?php echo $word20; ?>; 
      var word1Txt = <?php echo $word1Txt; ?>; 
      var word2Txt = <?php echo $word2Txt; ?>; 

      $('div.word1').prepend("<h3 class='header'>hi" + word1Txt + "</h3>"); 
      $('div.word2').prepend("<h3 class='header'>hi" + word2Txt + "</h3>"); 
    }); 
}); 

HTML:

<form class="form-inline" method="post"> 
    <input class="form-control" type="text" placeholder="First Word" name="word1" autofocus> 
    <input class="form-control" type="text" placeholder="Second Word" name="word2" autofocus> 
    <input class="btn btn-primary form-submit" type="submit" value="Compare"> 
</form> 
+1

ajaxを使用してフォームを送信していますか?ページが変更されず、ページの変更が意味をなさない前にjsを実行していない場合は、フォームを送信しますか? – jcuenod

+0

何年も前に廃止された 'bind'を使用しています(' on'を見てください)、それはうまくいくはずです(あなたが期待することはできませんが、 ** PHPの部分はPHPエンジンで処理されています。そうでない場合は、Webコンソールで構文エラーが発生しているはずです。 PHPソースではなく、ブラウザが実際に受け取ったものを表示してください。 –

+0

@jcuenod:そうですね、隠されたフィールドなどを埋めるのであれば可能ですが、上記の変更は長く続かないでしょう。 :-) –

答えて

1

使用.on()または.submit()の代わりに、あなたVARSが文字列であることになっている場合は、それらを引用:

$(document).ready(function() { 
    $('form').on('submit', function() { 
     alert('hi'); 
      var word10 = '<?php echo $word10; ?>'; 
      var word20 = '<?php echo $word20; ?>'; 
      var word1Txt = '<?php echo $word1Txt; ?>'; 
      var word2Txt = '<?php echo $word2Txt; ?>'; 

      $('div.word1').prepend("<h3 class='header'>hi" + word1Txt + "</h3>"); 
      $('div.word2').prepend("<h3 class='header'>hi" + word2Txt + "</h3>"); 
    }); 
}); 
関連する問題