今天在購書網的圖書管理頁面遇到一個小問題,關於使用者輸入驗證:使用.NET的驗證控制項可以實現較多的使用者輸入驗證,但提示資訊輸出不是很靈活,所以嘗試在頁面較為顯眼的地方使用DIV標記顯示錯誤資訊.頁面表單為3個TextBox控制項及一個ImageButton控制項,javascript代碼如下:
因使用了主版頁面,在VS2005編輯的環境下控制項的ID並不是真正的ID,在輸出為HTML代碼後會在該ID前自動添加一些字元,故需要在瀏覽器中將控制項的ID複製下來,得到的才是真正的該控制項ID
<script language=javascript>
var flag=false;
function check(obj,str)
{
var o=document.getElementById(obj);
if(o.value=="")
{
document.getElementById("bookname").innerText=str;
}
else
{
document.getElementById("bookname").innerText="";
flag=true;
}
if(flag)
{
//ImageButton2的disabled預設設定為disabled;
document.getElementById("ctl00_ContentPlaceHolder1_ImageButton2").disabled=false;
}
}
</script>
頁面CS檔案代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Attributes.Add("onBlur", "return check('"+TextBox1.ClientID +"','作者為空白!');");
TextBox2.Attributes.Add("onBlur", "return check('" + TextBox2.ClientID + "','書名為空白!');");
TextBox3.Attributes.Add("onBlur", "return check('" + TextBox3.ClientID + "','出版社為空白!');");
}