Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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 如何在单击事件时创建可编辑的输入_Javascript_Php_Jquery_Html - Fatal编程技术网

Javascript 如何在单击事件时创建可编辑的输入

Javascript 如何在单击事件时创建可编辑的输入,javascript,php,jquery,html,Javascript,Php,Jquery,Html,因此,我有一个页面,我想使用它来允许用户查看数据库中当前的内容,并通过单击该框对其进行编辑。 我有一个非常老练的方法,可以处理文本输入,但是对于下拉框或日期选择器,它完全崩溃了。 我的HTML 因为您使用的是jQuery,所以请使用jQuery事件。最好使用prop()方法将readonly设置为false: $('input[type=date]').on('click', function(){ $(this) .removeClass("toedit")

因此,我有一个页面,我想使用它来允许用户查看数据库中当前的内容,并通过单击该框对其进行编辑。 我有一个非常老练的方法,可以处理文本输入,但是对于下拉框或日期选择器,它完全崩溃了。 我的HTML



因为您使用的是jQuery,所以请使用jQuery事件。最好使用
prop()
方法将
readonly
设置为false:

$('input[type=date]').on('click', function(){
    $(this)
      .removeClass("toedit")
      .prop("readonly", false)
      .addClass("inlineditjoind");    
});

因为您使用的是jQuery,所以请使用jQuery事件。最好使用
prop()
方法将
readonly
设置为false:

$('input[type=date]').on('click', function(){
    $(this)
      .removeClass("toedit")
      .prop("readonly", false)
      .addClass("inlineditjoind");    
});

你应该看看


您应该看看


JS/JQUERY-

$("#joind133").on('click',function(){
    $(this).removeProp("readonly")
        .removeClass("toedit")
        .addClass("inlineditjoind");
});
<td name='joineddate133'>
    <input type='date' id='joind133' name='joinda133' value='2012-03-15' class='toedit' readonly='readonly' size='20'/>
</td>
HTML-

$("#joind133").on('click',function(){
    $(this).removeProp("readonly")
        .removeClass("toedit")
        .addClass("inlineditjoind");
});
<td name='joineddate133'>
    <input type='date' id='joind133' name='joinda133' value='2012-03-15' class='toedit' readonly='readonly' size='20'/>
</td>

JS/JQUERY-

$("#joind133").on('click',function(){
    $(this).removeProp("readonly")
        .removeClass("toedit")
        .addClass("inlineditjoind");
});
<td name='joineddate133'>
    <input type='date' id='joind133' name='joinda133' value='2012-03-15' class='toedit' readonly='readonly' size='20'/>
</td>
HTML-

$("#joind133").on('click',function(){
    $(this).removeProp("readonly")
        .removeClass("toedit")
        .addClass("inlineditjoind");
});
<td name='joineddate133'>
    <input type='date' id='joind133' name='joinda133' value='2012-03-15' class='toedit' readonly='readonly' size='20'/>
</td>

在聚焦之前,您可以将所有字段设置为只读和隐藏:

$("table").on("focus", "input, select", function(){
    $(this)
    .prop("readonly", false)
    .removeClass("toedit");
});

$("table").on("blur", "input, select", function(){
    $(this)
    .prop("readonly", true)
    .addClass("toedit")
    .siblings("span").text($(this).val());
});

$("table").on("click", "td", function(){
    $(this).children().focus();
});

再次更新

您可以将所有字段设置为只读并隐藏,直到聚焦:

$("table").on("focus", "input, select", function(){
    $(this)
    .prop("readonly", false)
    .removeClass("toedit");
});

$("table").on("blur", "input, select", function(){
    $(this)
    .prop("readonly", true)
    .addClass("toedit")
    .siblings("span").text($(this).val());
});

$("table").on("click", "td", function(){
    $(this).children().focus();
});


再次更新

使用下拉菜单,你认为用户会如何添加新的菜单项?我想它只是存在于文本的位置,所以它从看起来像文本变成了输入。使用下拉菜单,你认为用户会如何添加新的菜单项?我想它只是存在于文本的位置,所以它从看起来像文本变成了比我的代码干净得多的输入。我仍在调整编写格式正确的jquery的方式最重要的变化是在readonly中使用prop而不是attr此解决方案的问题是我根据数据库中的内容生成id,因此有100多个日期属性,在运行时创建了不同的id。我需要一个方法来运行一个通用的日期属性,该属性可以在任何单击的日期上调用,如果你明白我的意思的话,它比我的代码要干净得多。我仍在调整编写格式正确的jquery的方式最重要的变化是在readonly中使用prop而不是attr此解决方案的问题是我根据数据库中的内容生成id,因此有100多个日期属性,在运行时创建了不同的id。我需要一个方法来运行一个通用的日期属性,该属性可以在任何单击的日期上调用,如果你看到我的意思,这正是我试图做的,它在风格上与我希望实现的目标最接近。我再次更新了,以在字段更新后设置
的内容。谢谢,这正是我想要做的,我无法越过我的丑陋和破碎的地方!这正是我想做的,这是最接近我希望达到的目标。我已经再次更新了,在一个字段更新后设置了
的内容。谢谢,这正是我想做的,我无法克服我的丑陋和破损!感谢关于道具的信息,为什么它是道具而不是addClass?它只是一个jquery的东西吗?a和a(属性)是两个不同的东西。啊,这是我的noobishness展示,可能应该读一两本教科书。感谢关于道具的信息,为什么它是道具而不是addClass?它只是一个jquery的东西吗?a和a(属性)是两个不同的东西。啊,这是我的noobishness展示,可能应该阅读一两本看起来非常有效的教科书,但我必须改变与代码相关的其他函数的负载才能使用它。下次我需要做类似的事情时,我会记住这一点,从一开始就记住它的编程可能会节省我的时间。这似乎真的很有效,但我必须更改与我的代码关联的其他函数的负载才能使用它。下次我需要做类似的事情时,我会记住这一点,从一开始就记住它的编程可能会节省我的时间。