2014-01-13 5 views
0

javascript функции в событии вроде onKeypress не работают, если я создаю тег ввода через JAVSCRIPT, используя innerHTML. Ниже приведен код, который я использую. То же самое работает, если я делаю это непосредственно в JSP-файле.Функция javascript не работает в innerHTML

$('<table id="additionalPassPopupTable'+rowNo+'" class="passenger_table_center">'+ 
     '<tr>'+ 
      '<td colspan="2" style="padding-left:20px; padding-top:5px; background-color:#e1e1e1;">Passenger Information</td>'+ 
     '</tr>'+ 
     '<tr>'+ 
      '<td style="padding-left:40px;">First Name *</td>'+ 
      '<td>'+ 
       '<input type="text" name="fname" >'+ 
      '</td>'+ 
      '<td>'+ 
       '<font color="red"></font>'+ 
      '</td>'+ 
     '</tr>'+ 
     '<tr>'+ 
      '<td style="padding-left:40px;">Last Name *</td>'+ 
      '<td>'+ 
       '<input type="text" name="lname" ></td>'+ 
      '<td>'+ 
       '<font color="red"></font>'+ 
      '</td>'+ 
     '</tr>'+ 
     '<tr>'+ 
      '<td style="padding-left:40px;">Mobile Number</td>'+ 
      '<td>'+ 
       '<input type="text" name="phoneno" maxlength="10" onkeypress="return isNumber(event)" >'+ 
      '</td>'+ 
      '<td>'+ 
       '<font color="red"></font>'+ 
      '</td>'+ 
     '</tr>'+ 
     '<tr>'+ 
     '<td style="padding-left:40px;">Email Address</td>'+ 
      '<td>'+ 
       '<input type="text" name="email" maxlength="100" onkeypress="return validateEmail(event)">'+ 
      '</td>'+ 
      '<td>'+ 
       '<font color="red"></font>'+ 
      '</td>'+ 
     '</tr>'+ 
    '</table>').appendTo('#additionalPassengerDiv'); 

function isNumber(evt) { 
    evt = (evt) ? evt : window.event; 
    var charCode = (evt.which) ? evt.which : evt.keyCode; 
    if (charCode > 31 && (charCode < 48 || charCode > 57)) { 
     return false; 
    } 
    return true; 
} 

function validateEmail(evt) { 

    evt = (evt) ? evt : window.event; 
    var charCode = (evt.which) ? evt.which : evt.keyCode; 
    if (charCode > 31 && ((charCode < 48 || charCode > 57) && (charCode < 64 || charCode > 90) && (charCode < 97 || charCode > 122) && (charCode != 46) && (charCode != 45) && (charCode != 95))) { 
     return false; 
    } 
    return true; 
} 
+0

любая ошибка в вашем браузере консоли –

+0

, где определен 'test' функция и как –

+0

убедитесь, что тест функция доступна в глобальном масштабе –

ответ

1

Привет, здесь я прикрепляю ваш код к jsfiddle. В этом ваш код работает. Здесь можно найти скрипку.

Спасибо. Java script function in innerhtml :JSFiddle

function isNumber(evt) { 
alert("Validate Number"); 
evt = (evt) ? evt : window.event; 
var charCode = (evt.which) ? evt.which : evt.keyCode; 
if (charCode > 31 && (charCode < 48 || charCode > 57)) { 
    return false; 
} 
return true;} 
function validateEmail(evt) { 
alert("Validate Email Id"); 
evt = (evt) ? evt : window.event; 
var charCode = (evt.which) ? evt.which : evt.keyCode; 
if (charCode > 31 && ((charCode < 48 || charCode > 57) && (charCode < 64 || charCode > 90) && (charCode < 97 || charCode > 122) && (charCode != 46) && (charCode != 45) && (charCode != 95))) { 
    return false; 
} 
return true;} 

$(document).ready(function(){ 
$('#additionalPassengerDiv').html('<table id="additionalPassPopupTable" class="passenger_table_center">'+ 
    '<tr>'+ 
     '<td colspan="2" style="padding-left:20px; padding-top:5px; background-color:#e1e1e1;">Passenger Information</td>'+ 
    '</tr>'+ 
    '<tr>'+ 
     '<td style="padding-left:40px;">First Name *</td>'+ 
     '<td>'+ 
      '<input type="text" name="fname" >'+ 
     '</td>'+ 
     '<td>'+ 
      '<font color="red"></font>'+ 
     '</td>'+ 
    '</tr>'+ 
    '<tr>'+ 
     '<td style="padding-left:40px;">Last Name *</td>'+ 
     '<td>'+ 
      '<input type="text" name="lname" ></td>'+ 
     '<td>'+ 
      '<font color="red"></font>'+ 
     '</td>'+ 
    '</tr>'+ 
    '<tr>'+ 
     '<td style="padding-left:40px;">Mobile Number</td>'+ 
     '<td>'+ 
      '<input type="text" name="phoneno" maxlength="10" onkeypress="return isNumber(event)" >'+ 
     '</td>'+ 
     '<td>'+ 
      '<font color="red"></font>'+ 
     '</td>'+ 
    '</tr>'+ 
    '<tr>'+ 
    '<td style="padding-left:40px;">Email Address</td>'+ 
     '<td>'+ 
      '<input type="text" name="email" maxlength="100" onkeypress="return validateEmail(event)">'+ 
     '</td>'+ 
     '<td>'+ 
      '<font color="red"></font>'+ 
     '</td>'+ 
    '</tr>'+ 
'</table>');}); 
Смежные вопросы