私はこのようなjavascript関数を持っています:
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "watermark", "function WaterMark(txtWaterMark, event, text) {if(event.type == 'keyup') {var charCode; if (event.charCode) { charCode = event.charCode;} else { charCode = event.keyCode; } if(charCode == 9 && txtWaterMark.value.length == 0) txtWaterMark.value = 'Pakistan';} if (txtWaterMark.value.length > 0 && event.type == 'mouseover') { txtWaterMark.style.color = '#c6c1c1'; } if (txtWaterMark.value.length > 0 && event.type == 'mouseout') { txtWaterMark.style.color = 'gray';} if (txtWaterMark.value.length == 0 && event.type == 'mouseout') {txtWaterMark.value = text; } if (event.type == 'focus') {txtWaterMark.style.color = 'gray'; if (txtWaterMark.value == text) { txtWaterMark.value = ''; } }}", true);
そして私はそれをこのように呼んでいます:
<asp:TextBox ID="txtFirstName" runat="server" Width="110px" Text="First Name."
ForeColor="Gray" onmouseover="WaterMark(this, event,'First Name.');" onmouseout="WaterMark(this, event,'First Name.');"
onfocus="WaterMark(this, event,'First Name.');" onkeyup="WaterMark(this, event,'First Name.');" ToolTip="First Name."
ValidationGroup="CheckoutConfirm"></asp:TextBox>
ユーザーがタブキーを押してテキストボックス間を移動すると、テキストボックスにテキストが追加されるように、キーアップイベントを使用していますが、タブを押した後にフォーカスがテキストボックス内にあるときにキーアップが発生します。「フォーカスが失われた」のようなイベントが必要です。ぼかしを試しましたが、メリットはありません。