質問: $('form tr'); if ( rows.length > 2 ) { rows[rows.length-1].html(''); $('form :hidden:last').val(''); } else { alert('cannot remove any more rows'); } } </script> </head> <body> <form autocomplete="off" method="post" action=""> <p>title:<input type="text" /></p> <button onclick="additem(); return false;">add item</button> <button onclick="removeitem(); return false;">remove last item</button> <table> <th>name</th> <tr> <td><input type="text" id="input1" name="input1" /></td> <td><input type="hidden" id="input2" name="input2" /></td> </tr> </table> <input id="submit" type="submit" name="submit" value="submit"> </form> </body> </html>
回答: 関数removeitemには実際にはエラーが含まれているため、フォームボタンはデフォルトの動作(フォームの送信)を実行します。この場合、javascriptエラーコンソールは通常ポインタを渡します。javascriptの部分で関数removeitemを調べてください。この線:rows[rows.length-1].html(''); うまくいきません。代わりにこれを試してください:rows.eq(rows.length-1).html('');