javascript - 在 super 单击上将标签更改为文本框 - mvc

标签 javascript jquery asp.net-mvc razor

我想在用户单击“编辑”链接时将标签更改为文本框。我正在做this post中讨论的同样的事情,唯一的区别是我使用的是 mvc razor 语法 DisplayFor而不是使用<label class="text-info">Saghir</label> .
我没有得到想要的结果,请告诉我哪里出错了。

HTML:

@Html.DisplayFor(m => m.FirstName, new { @id = "#attribute", @class = "text-info" })
<a href="#" id="edit">Edit</a>

JS:

<script>
$('#edit').click(function () {
    var text = $('.text-info').text();
    var input = $('<input id="attribute" type="text" value="' + text + '" />')
    $('.text-info').text('').append(input);
    input.select();

    input.blur(function () {
        var text = $('#attribute').val();
        $('#attribute').parent().text(text);
        $('#attribute').remove();
    });
});
</script>

最佳答案

试试这个

HTML

@Html.DisplayFor(m => m.FirstName, new { @id = "attribute", @class = "text-info" })
<a href="#" id="edit">Edit</a>

JS

$(document).ready(function (){
  $('#edit').click(function () {
     var text = $('.text-info').text();     
     var input = "<input id='attribute' type='text' class='text-fill' value='" + text + "' onfocusout='myFunction($(this))' />";
     $('.text-info').parent().text('').append(input);         
   });
});

function myFunction(e){
  var text = e.val(); 
  var dad = e.parent();  
  e.remove();
  dad.append("<label for='name' id='attribute' class='text-info'>" + text + "</label>");
}

例如 fiddle - http://jsbin.com/xegusicige/1/edit?html,js,output

关于javascript - 在 super 单击上将标签更改为文本框 - mvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37386372/

相关文章:

javascript - 如何在生成新 URL - AJAX 时更改 div 内容?

javascript - jQuery 限制两个日期选择器之间的差异

javascript - Morris 图表未显示 MVC 的最后一个 xkey 值

javascript - 音频播放完毕触发事件

c# - asp.net mvc 3 View 中 foreach 循环中每个元素的唯一 ID?

javascript - jQuery 自动完成在 $.ajax 中找不到 $(this)

javascript - 删除图库中相同宽度的图像之间的垂直空白

javascript - 如何将动态 json 加载到 jquery 数据表

javascript - 简单函数在 if 语句中不起作用

javascript - 如何在 jQuery 中使用 Ajax 请求发送 FormData 对象?