テーブルの行を編集しようとしていますが、正しく動作しません。 編集ボタンをクリックしてテキストボックスの値を削除し、編集ボタンをクリックしてテキストボックスを埋めるアラートを表示します。そうでない場合、キャンセルボタンが表示されますが、キャンセルボタンは正しく表示されません。コードのためJSFiddleを参照してください。http://jsfiddle.net/9KEGd/191/Jqueryテーブルの行のキャンセルボタンが正しく動作しない
のJs:
$(function() {
$(".edit").click(function (e) {
e.preventDefault();
e.stopImmediatePropagation();
var btn = $(this);
var td = btn.closest("tr").find(".editable");
var currentValue = td.text();
//Save current text in td data attribute
$(td).data("current-value", currentValue);
if(btn.text() === "edit")
{
td.html("<input type='text' value="+currentValue+" />");
btn.html("save");
}
else
{
if(td.find("input").val()==""){
alert("please fill the text box")
}else{
td.html(td.find("input").val());
btn.html("edit");
}
}
});
$(".cancel").click(function (e) {
e.preventDefault();
e.stopImmediatePropagation();
var td = $(this).closest("tr").find(".editable");
//Read data attribute to get saved text
var currentValue = $(td).data("current-value");
if(currentValue != "")
{
td.html(currentValue);
$(this).parent().find(".edit").html("edit");
//Set attribute to empty string
$(td).data("current-value", "");
}else{
}
});
});
HTML:
<table id="tabledata">
<thead>
<th>RecID</th>
<th>Col1</th>
<th>opt</th>
</thead>
<tr>
<td><a><div class="nestedtable">Tableshowing no need edit</div></a><span class="editable">RecID1</span></td>
<td>Val1.1</td>
<td>
<ul>
<li> <a class="edit">edit</a></li>
<li> <a class="cancel">cancel</a></li>
</ul>
</td>
</tr>
<tr>
<td><a><div class="nestedtable">Tableshowings no need edit</div></a><span class="editable">RecID2</span></td>
<td>Val2.1</td>
<td> <ul>
<li> <a class="edit">edit</a></li>
<li> <a class="cancel">cancel</a></li>
</ul></td>
</tr>
<tr>
<td><a><div class="nestedtable">Tableshowing no need edit</div></a><span class="editable">RecID3</span></td>
<td>Val3.1</td>
<td> <ul>
<li> <a class="edit">edit</a></li>
<li> <a class="cancel">cancel</a></li>
</ul></td>
</tr>
</table>
jsfiddleはうまく動作します –
私は本当に問題が何であるか分かりません。 –
最初に編集ボタンをクリックして編集可能なテキストボックスからテキストを削除し、保存ボタンをクリックすると警告が表示されます:pleaeテキストボックスに記入してキャンセルをクリックします。プレビューの値です。テキストボックスが空の場合は、編集ボタンをクリックしてキャンセルボタンが表示されません。 –