Событие KeyUp не запускается в Firefox, но отлично работает в IE - PullRequest
2 голосов
/ 21 февраля 2012

Этот код отлично работает в 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;

}

Ответы [ 2 ]

0 голосов
/ 21 февраля 2012

Сначала попробуйте:

 textBox.Attributes.Add("onKeyUp", "alert('Does it fire at all?')");

Я думаю, это сработает. Потенциально FF чувствителен к регистру своих атрибутов.

Я сомневаюсь, что размещенный вами код работает, как вы ожидаете, даже в IE. Вот лучший способ присоединить обработчик событий через атрибут:

 textBox.Attributes.Add("onKeyUp", "chkTextBox.apply(this, arguments)");

 function chkTextBox(ev)
 {
      alert("Text box value is: " + this.value);
 }

Обратите внимание, что во многих браузерах ev будет объектом события, в IE это будет неопределенным, поскольку event назначается глобально.

0 голосов
/ 21 февраля 2012

Просто передать только это

textBox.Attributes.Add("onkeyup", "chkTextBox(this);");

JS

function chkTextBox(textBoxID)
{
     alert('Textbox Value: ' + textBoxID.value);
}

ВЫХОД

Во время нажатия я получаю окно с сообщением с введеннымзначения

Пример : Textbox Value: Pa$$w0rd

Я тестировал в IE8, FF, Chrome.Везде работает нормально.

...