如何<input>通过单击按钮将其全部更改为其值,并在以后将其更改回来?



问题:我有一个页面,其中包含许多<input>字段(只是说所有字段都是文本字段)我想要一个按钮,当单击它时,所有输入字段将仅变为纯文本。例如 <input type="text" value="123" />变成 123如果我单击另一个按钮,文本将变回例如,123 变为<input type="text" value="123" />

有没有一种自动方法可以扫描所有<input>并使用javascript和jquery一次更改它们。

谢谢!


编辑看来你们的想法错了。再次阅读我写的内容:例如 <input type="text" value="123" />变成 123

我已经有 value="123",为什么我要再次设置该值???

我想要的是例如

<body><input type="text" value="123" /><input type="text" value="456" /></body>变得<body>123456</body>,后来又<body>123456</body><body><input type="text" value="123" /><input type="text" value="456" /></body>

用这个去一个方向,

$('input').replaceWith(function(){
    return $('<div />').text(this.value).addClass('plain-text');
});​​​

而这个去另一个。

$('.plain-text').replaceWith(function(){
    return $('<input />').val($(this).text());
});

http://jsfiddle.net/Evmkf/2/查看此链接

.HTML:

<div id='divInput'>
    <input type="text" value='123' />
    <br/>
    <input type="text" value='456' />
    <br/>
    <input type="text" value='789' />
</div>
<div id='plainText' style='display:none'></div>
<div>
    <input type="button" id='btnPlain' value='Make It Plain' />
    <input type="button" id='btnInput' value='Make It Text' />
</div>​

Javascript:

$("#btnPlain").bind('click',function(){
  $("#plainText").html('');
  $("#divInput input[type=text]").each(function(index){
    $("#plainText").append('<span>'+$(this).val()+'</span>');
    $("#divInput").hide();
    $("#plainText").show();
  });
});
$("#btnInput").bind('click',function(){
  $("#divInput").html('');
  $("#plainText span").each(function(index){
    $("#divInput").append('<input type="text" value="'+$(this).text()+'"/><br/>');
    $("#plainText").hide();
    $("#divInput").show();
  });
});

试试这个小提琴

$(function() {
    var arr = [];
    $('#btn').on('click', function() {
        var $text = $('#inp input[type="text"]');
        if( $text.length > 0){
            $text.each(function(i) {
                arr[i] = this.value;
            });
            $('#inp').html(arr.join());
        }
        else{
            if(arr.length <= 0){
            }
            else{ // Add Inputs here
                var html = '';
                $.each(arr, function(i){
                    html += '<input type="text" value="' + arr[i]+ '"/>'
                });
                 $('#inp').html(html); 
            }
        }
    });
});

你需要为每个输入创建一个隐藏元素,然后使用 jquery 隐藏输入,显示隐藏元素并为其提供输入值。

<input type="text" value="123" id="input_1" />
<div id="div_1" style="display:none;"></div>
$("#div_1").html($("input_1").val());
$("#input_1").hide();
$("#div_1").show();

最新更新