2013-08-01 29 views

回答

1

是的,你可以

$("input").each(function(){ 
    var myLength = $(this).val().length; 
    if(myLength == 1){ 
     $(this).attr('size', myLength); 
     $(this).attr('class', 'mini'); 
    }else{ 
     $(this).attr('size', myLength);  
    } 

}); 

和CSS類做到這一點:

.mini{ 
    width:10px; 
} 

fiddle上的示例。

希望它有幫助!

+0

這給了我錯誤SCRIPT380:無效的屬性值。 jquery-1.8.2.min.js,第2行字符32075 SCRIPT257:由於錯誤80020101,無法完成操作。 – AlexW

+0

這是您的jQuery版本的問題;在jsfiddle中我使用了1.9.1。你的版本是1.8.2 :) – Lan

+0

記得總是下載jQuery的最後一個版本..我沒有使用最後一個..但似乎它工作在1.9.1 – Lan

0

試試下面的事情,如果我們經過一些人物說的限制將取代輸入域textarea的,看下面的代碼:

$(".input_text").each(function(index, obj){ 
    var txt = $(this), txtLength = txt.val().length; 
    if(txtLength <= 1){ 
     txt.height("25px"); 
    }else{ 
     var txtarea = $("<textarea/>"); 
     txt.replaceWith(txtarea.val(txt.val())); 
    } 
}); 

工作示例這裏:http://jsfiddle.net/tFDNx/2/

+0

即時消息並沒有考慮到增長,但他們在負載上縮小以適應內容... – AlexW

0

您可以使用任何他們這的一切工作正常

1)<input id="txt" type="text" onkeypress="this.style.width = ((this.value.length + 1) * 8) + 'px';">

2)var inputEl = document.getElementById("theInput");

function getWidthOfInput() { 
    var tmp = document.createElement("span"); 
    tmp.className = "input-element tmp-element"; 
    tmp.innerHTML = inputEl.value.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;'); 
    document.body.appendChild(tmp); 
    var theWidth = tmp.scrollWidth; 
    document.body.removeChild(tmp); 
    return theWidth; 
    } 

    function adjustWidthOfInput() { 
    inputEl.style.width = getWidthOfInput() + "px"; 
    } 

    adjustWidthOfInput(); 
    inputEl.onkeyup = adjustWidthOfInput; 

3)// HTML // jQuery的

$(function(){ 
    $('#input').keyup(function(){ 
    $('<span id="width">').append($(this).val()).appendTo('body'); 
    $(this).width($('#width').width() + 2); 
    $('#width').remove(); 
    }); 
}); 
相關問題