2012-04-02 8 views
0

私はPHPページでHTMLフォームを使用しています。フォームにはさまざまな入力があります。入力の1つはのonchangeイベントがあります。は、onchangeではなくjavascript onloadを実行します。

<script type="text/javascript"> 
    function showUser(userNumber, str) 
    { 
    if (str=="") 
    { 
     document.getElementById("txtHint" + userNumber).innerHTML=""; 
     return; 
    }  
    if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } 

    xmlhttp.onreadystatechange=function() 
    { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     { 
     //document.getElementById("txtHint" + userNumber).innerHTML=xmlhttp.responseText; 
     var responseText = xmlhttp.responseText; 
     var description = responseText.substring(12, responseText.indexOf(",Warehouse:")); 
     var warehouse = responseText.substring(responseText.indexOf(",Warehouse:")+11, responseText.indexOf(",SellingUnits:")); 
     var sellingUnits = responseText.substring(responseText.indexOf(",SellingUnits:")+14); 

     document.getElementById("whse" + userNumber).innerHTML = warehouse; 
    document.getElementById("txtHint" + userNumber).innerHTML = description; 
    document.getElementById("su" + userNumber).innerHTML = sellingUnits; 
    } 
} 
xmlhttp.open("GET","getdata1.php?q="+str,true); 
xmlhttp.send(); 
} 
</script> 

これが100%に動作します:

<input size=10 type=number id=sku1 name=sku1 onchange="showUser(1, this.value);showWhse(1, this.value)"> 

これは次の関数を呼び出します。しかし、入力にセッション変数が入力され、そのページがリフレッシュされた場合、onchangeイベントなしでスクリプトが再びonloadを実行できるようにするにはどうすればよいですか?

ページが最初に訪問されたとき、idには値があり、スクリプトを実行しますか?

答えて

2

関数onloadを実行するだけですか?

window.onload = function init() { 
    showUser(1, document.getElementById("sku1").value); 
} 

はまた、あなたの文書の体のonload属性を使用し、またはDOMContentLoadedにイベントハンドラとしてinit関数を追加することができます。しかし、私はあなたが既にonDOMreadyで実行されるいくつかの機能を持っていることを確信しています。

+0

!これに感謝します。できるだけ早く答えを受け入れるでしょう! – Smudger

0

あなたもjqueryの

$(document).ready(function() { 
    showUser(1, $("#sku1").val()); 
}); 
+0

ありがとう、あなたはこのコードをどこで呼びますか?入力の中から? – Smudger

0

さて、あなたはonloadイベントを使用することができますから、レディ機能を使用することができます。 Jqueryのdocument.ready機能の使用を検討することもできます。違いはhereです。また、jQueryのいずれの場合も、あなたのフォーム要素

にアクセスするためのはるかに簡潔な構文を提供し、あなたはおそらく、単純にフィールドをチェックのようなものが値を持ってい機能が必要になります。あきれるほど簡単だった

<script type="text/javascript"> 

function showUserOnLoad() 
{ 
    var inputValue = $('#sku1').val(); 
    if(inputValue != '' && inputValue != null) 
     showUser(1, inputValue);   
} 

function showUser(userNumber, str) 
{ 
    ... 
} 
</script> 
関連する問題