【发布时间】:2016-01-12 04:33:10
【问题描述】:
我有显示名称和输入字段的动态表。如果名称显示在表格行中,用户可以选择删除该名称。我知道如何从特定表行中删除值,但我在用应该与其他可用字段相同的输入字段替换同一个位置时遇到问题。这是我到目前为止的代码:
<cfoutput>
<tr>
<td>#TimeFormat(CurrentTime,'hh:mm tt')#</td>
<td onClick="deleteSlot('#TimeSlotID#')">
<cfif UserID GT 0>
<label>
<div id="#TimeSlotID#">
(<b>#First# #Last#</b>)
<img src="images/delete.png"/>
</div>
</label>
<cfelseif UserID EQ -1>
<label>
<input type="text" name="email" id="email#currentRow#" class="email">
<input type="button" name="slot" id="slot#currentRow#" class="slot" value="Save" onClick="saveTime(this,'#TimeSlotID#')" style="display: none">
</label>
</cfif>
</td>
</tr>
</cfoutput>
JavaScript: //如果用户开始在可用字段中输入,此代码会显示保存按钮。
$(document).ready(function() {
$(".email").keyup(function(e) {
if($(this).val() != '') {
$(".email").not(this).attr('disabled','disabled');
$(this).next(".slot").show();
} else {
$(".email").removeAttr('disabled');
$(this).next(".slot").hide();
}
});
});
//这是我试图从单元格中删除名称并替换为输入字段的代码
function deleteSlot(TimeSlotID){
$('#' + TimeSlotID).replaceWith('<label><input type="text" name="email" id="email#currentRow#" class="email"><input type="button" name="slot" id="slot#currentRow#" class="slot" value="Save" onClick="saveTime(this,'#TimeSlotID#')" style="display: none"></label>');
}
我目前在 deleteSlot 函数中使用的这段代码确实将名称替换为输入字段,但如果我开始在该字段中输入,我不会像其他代码那样显示保存按钮。我不是 100% 确定这是否可以按照我开始的方式完成,或者我应该使用其他东西。我尝试了追加,但没有奏效,每次点击时都会给我额外的输入字段。如果有人知道解决此问题的更好方法,请告诉我。
【问题讨论】:
标签: javascript jquery html