0

我有一个网页,我可以在其中获得要动态添加的总文本框的计数。我添加了一个 HTML 表格,我在其中添加了行和单元格以放置文本框。

我不希望为每个文本框添加标签控件,但希望在每个文本框中放置水印文本,这些文本框是作为文本框数组动态创建的。

请帮助我实现这一目标。任何代码都会好很多!

下面的代码是我写的,它只在 HTML 表格控件中创建了文本框。

//Add row to table
tRow = new TableRow();
tblBokingDet.Rows.Add(tRow);

//Add cell to row
tCell = new TableCell();
tRow.Cells.Add(tCell);

//Add a literal text as control
AddTextBox = new TextBox();
AddTextBox.ID = "txtName" + i;                    
tCell.Controls.Add(AddTextBox);
4

2 回答 2

1

尝试 :

        AddTextBox = new TextBox();
        AddTextBox.ID = "txtName" + i;                    
        tCell.Controls.Add(AddTextBox); // add to the cell
        AddTextBox.Attributes.Add("class", "hintTextbox");
        AddTextBox.Attributes.Add("onfocus", "if (this.value=='Name') this.value = '';this.style.color = '#000';");
        AddTextBox.Attributes.Add("onblur", "if (this.value=='') {this.value = 'Name';this.style.color ='#888';}");

添加CSS:

         INPUT.hintTextbox       { color: #888; }
         INPUT.hintTextboxActive { color: #000; }​

在此处查看示例小提琴:http: //jsfiddle.net/F5R6Z/3/

于 2012-12-11T19:27:17.743 回答
1

我不知道是否有办法通过Ajax 工具包连接某些东西以动态创建文本框,但一种“开放”的方式是使用 JavaScript 将水印附加到每个文本框。(我说“开放”是因为将您的 UI 功能与您用于可移植性/可重用性的任何后端框架分开通常是一种很好的做法。)

这是jQuery方式

这是香草的javascript方式

您正在连接每个文本框的 onfocus() 和 onblur() 事件。当然,您需要创建一个足够通用的 js 函数来遍历每个文本框并连接它们的事件。

示例(对于单个文本框):

<input id="MyTextBox" type="text" value="Search" />

<script>
    var MyTextBox = document.getElementById("MyTextBox");

    MyTextBox.addEventListener("focus", function(){
        if (this.value=='Search') this.value = '';
    }, false);

    MyTextBox.addEventListener("blur", function(){
        if (this.value=='') this.value = 'Search';
    }, false);
</script>
于 2012-12-11T19:05:17.010 回答