Javascript 当<;td>;价值</td>;点击
我有一个显示数据结果的表格Javascript 当<;td>;价值</td>;点击,javascript,jquery,html,Javascript,Jquery,Html,我有一个显示数据结果的表格 我想在单击时将值更改为输入字段,以便可以输入和提交新值 我有下面的脚本,它在显示输入字段时工作正常,但一旦显示,我就不能在输入字段内单击以输入新值 如何防止输入字段响应第二次单击 剧本 $(".inputqty").click(function(event) { $(this).html('<input class="form-control input-sm" id="inputqty" style="width:50px; heigh
我想在单击时将值更改为输入字段,以便可以输入和提交新值
我有下面的脚本,它在显示输入字段时工作正常,但一旦显示,我就不能在输入字段内单击以输入新值 如何防止输入字段响应第二次单击 剧本
$(".inputqty").click(function(event) {
$(this).html('<input class="form-control input-sm" id="inputqty" style="width:50px; height:20px;" type="text" name="<?php echo $prod_var_code; ?>" value="<?php echo $qty; ?>">');
});
$(“.inputqty”)。单击(函数(事件){
$(this.html('Try
$(“.inputqty”)。单击(函数(事件){
var$this=$(this);
如果(!$this.has('input')){
$(this.html('Try
$(“.inputqty”)。单击(函数(事件){
var$this=$(this);
如果(!$this.has('input')){
$(this).html('您还可以删除类,如
$(".inputqty").click(function(event) {
$(this).html('<input class="form-control input-sm" id="inputqty" style="width:50px; height:20px;" type="text" name="<?php echo $prod_var_code; ?>" value="<?php echo $qty; ?>">');
$(this).removeClass('inputqty');
});
$(“.inputqty”)。单击(函数(事件){
$(this).html('您还可以删除类,如
$(".inputqty").click(function(event) {
$(this).html('<input class="form-control input-sm" id="inputqty" style="width:50px; height:20px;" type="text" name="<?php echo $prod_var_code; ?>" value="<?php echo $qty; ?>">');
$(this).removeClass('inputqty');
});
$(“.inputqty”)。单击(函数(事件){
$(this).html('可以用来防止父处理程序收到事件通知,如
$(document).on('click', 'input-sm', function(e) {
e.stopPropagation();
});
您可以使用来防止父处理程序收到事件通知,如
$(document).on('click', 'input-sm', function(e) {
e.stopPropagation();
});
您需要从
jQuery具有.unbind()
JS:
小提琴:
http://jsfiddle.net/YGhtm/
这将阻止第二次单击-它实际上会删除整个绑定。您需要从
jQuery具有.unbind()
JS:
小提琴:
http://jsfiddle.net/YGhtm/
这将阻止第二次点击——它实际上会删除整个绑定。
< P>我相信其他人已经提供了对你有用的答案。但是我想指出你在这个场景中应该考虑的事情。
首先,除非必要,否则不要在jquery中使用
。这是因为PHP是服务器端,在发送到客户端之前会呈现一次。与客户端的任何交互都超出了PHP服务器端脚本的能力
在您的情况下,您可以将
的当前名称
属性作为
的名称,并使用
中的当前值作为
的值
属性
我个人建议使用不同的类名,如<代码>。编辑< <代码> > < <代码> >输入qt> <代码>,表示它处于编辑的中间。
<强>更新< /强>:我注意到你也使用了相同的<代码> ID <代码>,考虑改变它来使用你的<代码>名称< /Cord>属性。
从以上观点出发,我推荐以下JSFIDLE:
$(“.inputqty”)。单击(函数(事件){
$this=$(this);
if(!$this.hasClass('editing'))
{
var currentValue=$this.text();
var name=$this.attr('name');
$this.html(“”);
$this.addClass('editing');
}
});
我相信其他人已经提供了对你有用的答案。但是我想指出你在这个场景中应该考虑的事情。
首先,除非必要,否则不要在jquery中使用
。这是因为PHP是服务器端,在发送到客户端之前会呈现一次。与客户端的任何交互都超出了PHP服务器端脚本的能力
在您的情况下,您可以将
的当前名称
属性作为
的名称,并使用
中的当前值作为
的值
属性
我个人建议使用不同的类名,如<代码>。编辑< <代码> > < <代码> >输入qt> <代码>,表示它处于编辑的中间。
<强>更新< /强>:我注意到你也使用了相同的<代码> ID <代码>,考虑改变它来使用你的<代码>名称< /Cord>属性。
从以上观点出发,我推荐以下JSFIDLE:
$(“.inputqty”)。单击(函数(事件){
$this=$(this);
if(!$this.hasClass('editing'))
{
var currentValue=$this.text();
var name=$this.attr('name');
$this.html(“”);
$this.addClass('editing');
}
});
上面的解决方案可以显示输入字段,但是在jquery脚本中使用php变量却不行。因此,我最终使用的解决方案是这样的
HTML/PHP
echo '<td>
<p class="valueqty">' . $qty . '</p>
<input style="display:none" type="text" name="' . $prod_var_code . '" value="' . $qty . '">
</td>';
希望这对某人有所帮助:)上述解决方案可以显示输入字段,但在jquery脚本中使用php变量却不行。因此,我最终使用的解决方案是这样的
HTML/PHP
echo '<td>
<p class="valueqty">' . $qty . '</p>
<input style="display:none" type="text" name="' . $prod_var_code . '" value="' . $qty . '">
</td>';
希望这对某人有帮助:)您能提供JSFIDLE吗?检查控制台是否有错误您能发布一个表数据的示例吗?很可能在动态生成元素时,单击没有响应。因此您应该在处理程序或委托上使用。您还可以使用event.stopPropagation()防止事件冒泡
。很抱歉,您不能在客户端使用php。为此,您必须使用ajax。标记已删除,因为它在当前上下文中不相关。您可以提供JSFIDLE吗?检查控制台是否存在错误您是否可以发布表数据的示例?由于元素是动态生成的,单击可能没有响应。因此您应该使用>在
处理程序或委托上
。您还可以使用event.stopPropagation()防止事件冒泡
。很抱歉,您不能在客户端使用php。您必须为此使用ajax。标记已删除,因为它在当前上下文中不相关。@jason3w:如果它对您有帮助,请单击投票箭头下方的勾号接受答案-这有助于通过声誉来认可其他人的贡献。谢谢!明白了。我不得不这么做t4分钟:)@jason3w:如果对你有帮助,请
$(".valueqty").click(function(event) {
$(this).hide();
$(this).next().show();
});