2013-03-11 2 views
0

У меня есть php-файл (форма), который включает javascript, чтобы проверить, заполнены ли все входы. Когда я просматриваю файл php напрямую, js работает отлично, но когда я включаю PHP-файл на другой странице, javascript больше не работает.Javascript в включенном PHP-файле

Мой Javascript код:

<script type="text/javascript" src="../js/modernizr.js"></script> 
<script type="text/javascript"> 
window.onload = function(){ 
    document.getElementById("topField").setAttribute("autocomplete","off"); 
    } 

window.onload = function() { 
    // get the form and its input elements 
    var form = document.forms[0], 
     inputs = form.elements; 
    // if no autofocus, put the focus in the first field 
    if (!Modernizr.input.autofocus) { 
     inputs[0].focus(); 
    } 
    // if required not supported, emulate it 
    if (!Modernizr.input.required) { 
     form.onsubmit = function() { 
      var required = [], att, val; 
      // loop through input elements looking for required 
      for (var i = 0; i < inputs.length; i++) { 
       att = inputs[i].getAttribute('required'); 
       // if required, get the value and trim whitespace 
       if (att != null) { 
        val = inputs[i].value; 
        // if the value is empty, add to required array 
        if (val.replace(/^\s+|\s+$/g, '') == '') { 
         required.push(inputs[i].name); 
        } 
       } 
      } 
      // show alert if required array contains any elements 
      if (required.length > 0) { 
       alert('The following fields are required: ' + 
        required.join(', ')); 
       // prevent the form from being submitted 
       return false; 
      } 
     }; 
    } 
} 

</script> 
+0

Что вы видите в консоли ошибок? – datasage

+0

Проверьте свою консоль JS на наличие ошибок? –

+0

Включите ли вы это в php-файл на том же уровне каталога? обратите внимание на путь скрипта –

ответ

0

Это объяснение для тех, кто считает этот вопрос позже. В javascript вы можете присоединить только одну функцию к обработчику событий. Если вы хотите добавить больше, вам нужно связать их. Практически вся инфраструктура javascript/библиотеки имеет своего рода метод обработки цепочек событий.

Javascript позволяет обрабатывать функции как переменные. Таким образом, вы можете назначить старую функцию onload переменной, а затем вызвать ее позже в новой функции onload.

Если вы не используете фреймворк, вы можете сделать что-то подобное для обработки цепочек событий.

function addLoadEvent(func) { 
    var oldonload = window.onload; 
    if (typeof window.onload != 'function') { 
    window.onload = func; 
    } else { 
    window.onload = function() { 
     if (oldonload) { 
     oldonload(); 
     } 
     func(); 
    } 
    } 
} 

Вы назвали бы это следующим:

addLoadEvent(function(){ 
    // Some code here 
});