0

我有一个带有多个文本框的 Web 表单。我想评估文本框中的默认值,当用户单击该字段时,我想将其清除。这有助于减少表单上的空间。

下面给出错误消息“Microsoft JScript 运行时错误:需要对象。

Javascript:

function validateKeyword(f, flg, val) {
    switch (flg) {
        case 0: if (document.getElementById(f).value == val) { document.getElementById(f).value = ''; } break;
        case 1: if (document.getElementById(f).value == '') { document.getElementById(f).value = val; } break;
    }
}

ASP.NET 文本框:

<asp:TextBox maxlength="150"  runat="server" name="First_Name" value="First Name" class="frmsel2" onfocus="javascript:validateKeyword('first_name',0,'First Name');" onblur="javascript: validateKeyword('first_name',1,'First Name');" alt="First Name" title="First Name" id="first_name"></asp:TextBox>
4

3 回答 3

1

如果您使用的是 HTML5,我认为您可以使用placeholder

http://www.w3schools.com/html5/att_input_placeholder.asp

于 2012-11-01T14:42:14.700 回答
0

通过使用在 javascript 中引用您的 ID

document.getElementById(<%= first_name.ClientID %>).value = ''
于 2012-11-01T14:22:53.510 回答
0

我最终把它放在后面代码的 Page_Load 事件中。(进行编辑以使用常量值)。

public partial class _Default : System.Web.UI.Page
{
    private const string FormDefaFirstName = "First Name";
    private const string FormDefaLastName = "Last Name";

  protected void Page_Load(object sender, EventArgs e)
  {
        first_name.Attributes.Add("onfocus", "javascript: if(this.value=='" + FormDefaFirstName + "') this.value='';");
        first_name.Attributes.Add("onfocusout", "javascript: if(this.value=='') this.value='" + FormDefaFirstName + "';");
        last_name.Attributes.Add("onfocus", "javascript: if(this.value=='" + FormDefaLastName + "') this.value='';");
        last_name.Attributes.Add("onfocusout", "javascript: if(this.value=='') this.value='" + FormDefaLastName + "';");


    if (!Page.IsPostBack)
    {
        first_name.Text = "First Name";
        last_name.Text = "Last Name";
    }
 }
于 2012-11-01T16:01:40.020 回答