2012-03-07 72 views
2

我有一個<input> html元素。 該元素被默認值填充。 用戶應該能夠在默認文本末尾附加新文本,但不能刪除默認值。 我該如何解決這個問題?添加文字到<input>元素,但不要刪除它

+8

我會在文本_before_上顯示默認文本,並且使輸入爲可選項。你可以使用CSS來給文本添加文本,因爲它可以直接連接到''字段。 – Jona 2012-03-07 13:58:31

+0

肯定是最好的解決方案。否則,您需要檢查pressUp,然後查看輸入字符串是否包含「默認值」,如果不是用「默認值」替換內容。 – 2012-03-07 14:02:56

回答

2

,您可以用JavaScript做到這一點:

listen('load', window, init); 

function init() { 
    var test = document.getElementById('test'); 
    var val = test.value; 
    listen('keydown', test, replaceVal); 
    listen('keyup', test, replaceVal); 
    function replaceVal() { 
    tempVal = test.value; 
    if (tempVal.indexOf(val) === -1) { 
     tempVal = val; 
     test.value = val; 
    } 
    } 
} 

function listen(event, elem, func) { 
    if (elem.addEventListener) { 
    elem.addEventListener(event, func, false); 
    } else if (elem.attachEvent) { 
    elem.attachEvent('on' + event, func); 
    } 
} 

我已經在這裏建立了一個的jsfiddle:http://jsfiddle.net/sjfwz/

+0

它正在工作。謝謝 – Martynas 2012-03-07 14:46:16

+0

不客氣! – 2012-03-07 14:47:20

0

試試這個

腳本:

<script type="text/javascript"> 
    function MyFunction() { 

     document.getElementById('TextBox3').value = document.getElementById('defaultValue').value; 

     //if asp:textbox control should be work below 
     document.getElementById('<%=TextBox4.ClientID%>').value = document.getElementById('defaultValue').value; 

    } 

</script> 
    } 


<body onLoad="javascript:MyFunction();"> 
<input type="hidden" id="defaultValue" name="defaultValue" value="defaultValue"/> 
<input type="text" id="TextBox3" /> 
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox> 
</body> 
0

你可以還將輸入值與ke上的正則表達式模式進行比較ydown事件。如果正則表達式不匹配,則可以拒絕按鍵,例如退格鍵。

0

如果你不想做一些複雜的JS,你可以使用帶有一些填充的背景圖像。