2013-05-29 3 views
0

var 함수를 사용하여 PHP에서 사용할 수 있도록 변수를 작성하므로 게시 기능을 사용할 수 있습니다. 기본적으로 자바 스크립트로 가져 왔습니다.자바 스크립트 전역 변수 만들기

어쨌든 전역 변수를 어떻게 만들 수 있습니까?

Ive가 document.ready 함수에 포함 시키려고 시도했거나 코드가 document.ready 함수를 실행하기 전에도. 그 다음에 그 var를 어디에서나 반복하는 것이 더 깔끔합니다. 이유가 없기 때문에

여기, 당신은 아마 그들이 세계로 싶지 않는 코드

$(document).ready(function() { 
    var user_login = $('#user_login').val(); 
    var user_pass = $('#pass_login').val(); 
    $('#field').keyup(function (e) { 

     if (e.keyCode == 13) { 

      //If enter is pressed vailidate the form 
      e.preventDefault(); 
      $.ajax({ 

       url: 'ajax/check.php', 
       type: 'post', 
       data: { 
        user_login: user_login, 
        pass_login: user_pass 
       }, 
       success: function (data) { 
        $('#content').html(data); 
       } 
      }); 
     }; 
    }); 

    $('#submit').click(function (e) { 
     if (e.keyCode != 13) { 


      $.ajax({ 

       url: 'ajax/check.php', 
       type: 'post', 
       data: { 
        user_login: user_login, 
        pass_login: user_pass 
       }, 
       success: function (data) { 
        $('#content').html(data); 
       } 
      }); 
     } 
    }); 

}); 
+0

,': 당신은 같은에 현재 코드를 리팩토링 수 – Orangepill

답변

0

입니다. 이 코드를 작성 했으므로 변수가 사용자의 양식 필드에 아무 것도 입력하지 않은 상태로 문서가 준비되는 즉시 한 번만 평가됩니다. onkeyup 핸들러에서 또는 폼을 제출하여 현재 값을 갖도록 평가하려고합니다. 당신의 check.php가 있지만 다음과 비슷한 모습이 될 것입니다 않습니다 임 확실하지 :

$(function(){ 
    $('form#theform').submit(function(e){ 
     e.preventDefault(); 
     var user_login = $('#user_login').val(), 
      user_pass = $('#pass_login').val(); 
     // you ajax submit here 

    }); 

    $('#field').keyup(function(e){ 
     e.preventDefault(); 
     var user_login = $('#user_login').val(), 
      user_pass = $('#pass_login').val(); 
     // do your validation, if successful then do: $('theform').trigger('submit'); 
    }); 
}); 

당신은 항상 가장 최근의 입력을 필요로하기 때문에 당신이 여기 전역을 사용하려는 해달라고 이유입니다. 전역 변수를 사용한다면 상황이 바뀌기 때문에 가장 최근에 입력 한 것을 알 수있는 방법이 없습니다.

0

입력의 현재 값을 가져올 때마다 입력시 .val()으로 전화해야합니다. 처음에 한 번만 호출하면 사용자가 입력 할 때 변수가 최신 상태로 유지되지 않습니다. 이 같은

어떻게 좀 :

$(document).ready(function() { 
    // Make a function that returns the data, then call it whenever you 
    // need the current values 
    function getData() { 
     return { 
      user_login: $('#user_login').val(), 
      user_pass: $('#pass_login').val() 
     } 
    } 

    function check(e) { 
     e.preventDefault(); 
     $.ajax({ 

      url: 'ajax/check.php', 
      type: 'post', 
      data: getData(), // get current values 
      success: function (data) { 
       $('#content').html(data); 
      } 
     }); 
    } 

    // Don't repeat so much; use the same function for both handlers 
    $('#field').keyup(function(e) { 
     if (e.keyCode == 13) check(e); 
    }); 

    $('#submit').click(function(e) { 
     if (e.keyCode != 13) check(e); 
    }); 

}); 
0

글로벌은 아마 여기가는 방법이 아니다. 중복 된 코드를 줄이는 데 더 관심이있는 것 같습니다. 단지 VAR 드롭 .... 또는 specificly window 객체`window.myVar = '안녕하세요'에 설정 ... JS의 전역을 만드는 것은 쉬운

$(document).ready(function() { 
    function submitForm() { 
     var user_login = $('#user_login').val(); 
     var user_pass = $('#pass_login').val(); 

     $.ajax({ 
      url: 'ajax/check.php', 
      type: 'post', 
      data: { 
       user_login: user_login, 
       pass_login: user_pass 
      }, 
      success: function (data) { 
       $('#content').html(data); 
      } 
     }); 
    } 

    $('#field').keyup(function (e) { 
     if (e.keyCode == 13) { 
      //If enter is pressed vailidate the form 
      e.preventDefault(); 
      submitForm(); 
     }; 
    }); 

    $('#submit').click(function (e) { 
     if (e.keyCode != 13) { 
      submitForm(); 
     } 
    }); 
}); 
+0

다른 기능을 확장하기 위해 변수를 사용하기 때문에 그 (것)들을 gloabl가 필요합니다. 위의 모든 방법이 도움이되었습니다. Thnaks.) – Spudster

+0

자바 스크립트를 호출했습니다. 자바. 자바가 완전히 다른 프로그래밍 언어라는 것을 알고 있습니다. 오타가 잘못되었습니다. 지금 바로 수정되었습니다. – Spudster

관련 문제