2012-03-07 9 views
2

私は<input> html要素を持っています。 要素はデフォルト値で埋められます。 ユーザーはデフォルトのテキストの最後に新しいテキストを追加できなければなりませんが、デフォルト値は削除できませんでした。 この問題をどうやって解決できますか?<input>要素にテキストを追加しますが、削除しないでください

<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> 
+8

私は、デフォルトのテキストをテキストとして表示しています。これは「」です。入力を任意にします。 ''フィールドに直接接続されるように、CSSを使用してテキストに対応することができます。 – Jona

+0

確かに最高の解決策になりますか?それ以外の場合は、pressUpをチェックして、入力文字列に「デフォルト値」が含まれているかどうかを確認し、内容を「デフォルト値」に置き換えないかどうかを確認する必要があります。 –

答えて

2

あなたはJavaScriptでこれを行うことができます:私はここにjsFiddleを設定している

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); 
    } 
} 

http://jsfiddle.net/sjfwz/

+0

それは働いています。おかげで – Martynas

+0

ようこそ! –

0

この

スクリプトを試してみてください入力値をkeの正規表現パターンと比較するydownイベント。正規表現が一致しなかった場合は、バックスペースなどのキー入力を拒否することができます。

0

いくつかの複雑なJSをしたくない場合は、いくつかのパディング付きの背景画像を使用することができます。

関連する問題