此代码在IE中正常工作但不是FF。看起来正则表达式匹配功能在FF中无法正常工作。请参阅下面的代码。函数restrictData始终返回true。
protected void Page_Load(object sender, EventArgs e)
{
textBox.Attributes.Add("onkeyup", "chkTextBox(this)");
}
javascript代码**
function chkTextBox(txb)
{
var bx = document.getElementById(txb.id);
if (restrictData(bx))
{
alert('You have used a special character. Please retype your answer without using special characters');
bx.value = "";
}
}
function restrictData(cnid)
{
var inputValid = true;
restrictSplChrRegex = "^(a-z|A-Z|0-9)*[^\]$%^&*~!?><.:\;\`/|\['\\\\\\x22]*$";
if (cnid.value.match(restrictSplChrRegex))
inputValid =true;
else
inputValid =false;
return inputValid;
}
答案 0 :(得分:0)
只传递此
textBox.Attributes.Add("onkeyup", "chkTextBox(this);");
function chkTextBox(textBoxID)
{
alert('Textbox Value: ' + textBoxID.value);
}
在键盘输入时,我会收到包含输入值的警告框
示例:Textbox Value: Pa$$w0rd
我已在IE8,FF,Chrome中测试过。它到处都工作正常。
答案 1 :(得分:0)
你应该先试试这个:
textBox.Attributes.Add("onKeyUp", "alert('Does it fire at all?')");
我的猜测是可行的。可能FF的属性区分大小写。
我怀疑你发布的代码是否能像你期望的那样工作。以下是通过属性附加事件处理程序的最佳方法:
textBox.Attributes.Add("onKeyUp", "chkTextBox.apply(this, arguments)");
function chkTextBox(ev)
{
alert("Text box value is: " + this.value);
}
请注意,在许多浏览器上,由于ev
是全局分配的,所以IE上的事件对象event
将是未定义的。