0

テーブルの選択セルにデータを追加したい。このコードは JavaScript で書きました。

var rowIndex = 10;
var colIndex = 5;
var dateTable = document.getElementById('timeTable');
dateTable.rows[rowIndex].cells[colIndex].innerHTML = "Su";

jQuery で次のように同じ概念を使用したかったのです。

$('input[name=add_button]').click(function(e) {
    var dateTable = document.getElementById('timeTable');
    var rowIndex = $('[name=days]').val();
    var colIndex = $('[name=times]').val();
    var text = $('input[name = text]').val();
    dateTable.rows[rowIndex].cells[colIndex].innerHTML = text;
    e.preventDefault();
});

私の問題は次のとおりです。preventDefault()メソッドがフォームの送信を防ぐ必要があります。フォームの送信を妨げているわけではありません。行を削除する dateTable.rows[rowIndex].cells[colIndex].innerHTML = text;と、フォームは送信されません。この特定の行に問題があると思います。これを並べ替えるのを手伝ってください。jQuery で利用できるより良いオプションがあれば教えてください。colIndexとを使用しrowIndexて、セルの位置を見つけることができるようになります。

ありがとう

4

1 に答える 1

1

これを試して:

あなたの好きなものを追加return false;してくださいform tag

<form onsubmit="return false;" ......>

</form>

また、インデックスが から始まっていることを確認してください。これらが から始まって0 or 1いる場合は、使用する前に行う1必要があります。decrease it by 1

お気に入りdateTable.rows[rowIndex-1].cells[colIndex-1].innerHTML = text;

実際にクリックするbuttonと、他の要素の動作ではなく、preventその動作になります。default behavior(form in your case)

ですから、ここであなたを防ぐことはできないと思いますform

使用できる代替コード:

$('form#myForm').on('submit',function(e){
    e.preventDefault();
    var dateTable = document.getElementById('timeTable');
    var rowIndex = $('[name=days]').val();
    var colIndex = $('[name=times]').val();
    var text = $('input[name = text]').val();
    dateTable.rows[rowIndex].cells[colIndex].innerHTML = text;
    return false;
});
于 2013-04-08T05:14:42.477 に答える