Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当<;td>;价值</td>;点击_Javascript_Jquery_Html - Fatal编程技术网

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();
    });