重要!: onclick 属性を使用する必要があります。私の場合、イベントリスナー/ハンドラーでJqueryを使用することはオプションではありません。なんで?私のコードには、コード内の属性とその明示に依存する他の多くのものがあります。
アラートをonclick
属性に配置すると、期待どおりに機能し、アラートがポップアップ ウィンドウに表示され、false を返すと、ボタンを押してフォームが送信されなくなります。
<script>
$().ready(function() {
$('.pretty .prettycheckbox').click(function () {
var myType = $('.pretty .prettycheckbox').find("input[class^=car-type]:checked").val();
if (myType == 1) {
$('#sendButton').attr("onclick", "alert('Direct!'); return false;");
}
if (myType == 2) {
$('#sendButton').removeAttr("onclick");
}
});
});
</script>
ただし、次のような onclick 属性から関数を呼び出すと機能しません。
<script>
$().ready(function() {
$('.pretty .prettycheckbox').click(function () {
var myType = $('.pretty .prettycheckbox').find("input[class^=car-type]:checked").val();
if (myType == 1) {
$('#sendButton').attr("onclick", "submitDB(); return false;");
}
if (myType == 2) {
$('#sendButton').removeAttr("onclick");
}
});
});
</script>
<script>
$().ready(function(){
function submitDB() {
alert('From function!');
}
});
</script>
理由はありますか?
関数が無視されるのはなぜですか?