2014-02-20 3 views
0

У меня есть функция javascript для разделения URL-адреса параметров, а затем установка значений текстовых полей с найденными параметрами. Он отлично работает ... после обновления страницы. Как я могу получить его для заполнения текстовых полей при загрузке страницы?Разбиение hash url для заполнения текстовых полей в форме

$(function(){ 
    var urlParams = {}; 
    (window.onload = function() { 
     var match, 
      pl  = /\+/g, 
      search = /([^&=]+)=?([^&]*)/g, 
      decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); }, 
      query = window.location.search.substring(1); 

     urlParams = {}; 
     while((match = search.exec(query)) !== null) 
     urlParams[decode(match[1])] = decode(match[2]); 
    })(); 
    window.onload=function(){ 
     var nm= urlParams['name']; 
     var pn= urlParams['phone']; 
     var em= urlParams['email']; 
     document.getElementById('txtName').value=nm; 
     document.getElementById('txtPhone').value=pn; 
     document.getElementById('txtEmail').value=em; 
    } 
}) 

Может ли кто-нибудь мне помочь?

ответ

0

Прежде всего, слишком много window.onload. Функция jQuery $ (function() {}) будет запущена, когда DOM будет готова, и этого должно быть достаточно для вашего дела. Однако я попытался воспроизвести вашу проблему, но функция работает для меня. Попробуйте удалить window.onloads и скажите, если это поможет. Может быть, подготовить jsFiddle тоже будет хорошо.

$(function(){ 
    var urlParams = {}; 
    (function() { 
     var match, 
      pl  = /\+/g, // Regex for replacing addition symbol with a space 
      search = /([^&=]+)=?([^&]*)/g, 
      decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); }, 
      query = window.location.search.substring(1); 

     while((match = search.exec(query)) !== null) 
     urlParams[decode(match[1])] = decode(match[2]); 
    })(); 

    var nm= urlParams['name']; 
    var pn= urlParams['phone']; 
    var em= urlParams['email']; 
    document.getElementById('txtName').innerText=nm; 
    document.getElementById('txtPhone').innerText=pn; 
    document.getElementById('txtEmail').innerText=em; 

}) 
+0

Тот же результат, я буду играть с кодом на предыдущей странице и посмотреть, есть ли проблема с кодом, прежде чем нажимать на ссылку на форму. – user3282492

+0

Не могли бы вы вставить форму разметки и URL-адрес образца? –

+1

Я понял, это был код формы с предыдущей страницы. Я ошибался, я сначала использовал и переключил его на javascript с помощью функции щелчка window.location.href. – user3282492

Смежные вопросы