<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • js如何獲取input里面的值(vue雙向綁定原理)


    同事跟我說他用jQuery取不到頁面上隱藏元素input的值,他的html頁面大概內容如下。

    <!DOCTYPE html>
    <html lang="zh">
     
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    	<script type="text/javascript" src="jslib/jquery-1.11.2.min.js"></script>
    	<title>淺談Html頁面內容執行順序</title>
    	<script type="text/javascript">
    		var userId = $('#hiddenUserId').val();
    		var contextPath = $('#hiddenContextPath').val();
    		var userName = $('#hiddenUserName').val();
    	</script>
    </head>
     
    <body>
    	<input type="hidden" id="hiddenUserId" value="101" />
    	<input type="hidden" id="hiddenContextPath" value="/web" />
    	<input type="hidden" id="hiddenUserName" value="小明" />
    </body>
     
    </html>

    頁面中的JS腳本在head中,JS腳本要讀取的input在body中。瀏覽器對html頁面內容的加載是順序加載,也就是在html頁面中前面先加載,因此當加載到JS腳本時,input還沒有加載到瀏覽器中。JS是一種解釋性的腳本,也是從上而下順序執行,由于這段JS代碼是立即執行的,所以當JS在執行的時候,讀取不到input的值。

    最直接的修改方法是把JS放到網頁的最下面執行。

    <!DOCTYPE html>
    <html lang="zh">
     
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    	<script type="text/javascript" src="jslib/jquery-1.11.2.min.js"></script>
    	<title>淺談Html頁面內容執行順序</title>	
    </head>
     
    <body>
    	<input type="hidden" id="hiddenUserId" value="101" />
    	<input type="hidden" id="hiddenContextPath" value="/web" />
    	<input type="hidden" id="hiddenUserName" value="小明" />
    	
    	<script type="text/javascript">
    		var userId = $('#hiddenUserId').val();
    		var contextPath = $('#hiddenContextPath').val();
    		var userName = $('#hiddenUserName').val();
    	</script>
    </body>
     
    </html>

    把JS放到網頁的最下面,這樣在JS執行的時候,網頁內容都已經加載完畢。把JS放在網頁的最下面方法并不是最好的解決方法,大部分情況JS并不是總能放在網頁的最下面。這時可以用window的onload事件,onload事件在整個頁面都加載完成后才觸發,可以把JS腳本放在onload里面執行。不同瀏覽器onload事件添加方式也不一樣。

    IE下事件:

    window.attachEvent('onload', function(){
    			var userId = $('#hiddenUserId').val();
    			var contextPath = $('#hiddenContextPath').val();
    			var userName = $('#hiddenUserName').val();
    		});

    Chrome/Firefox等DOM標準事件:

    window.addEventListener('load', function(){
    			var userId = $('#hiddenUserId').val();
    			var contextPath = $('#hiddenContextPath').val();
    			var userName = $('#hiddenUserName').val();
    		});

    由于不同瀏覽器的事件添加方式不一樣,jQuery為我們提供了通用的初始化方法,該方法在頁面加載完成時觸發。

    $(function(){
    			var userId = $('#hiddenUserId').val();
    			var contextPath = $('#hiddenContextPath').val();
    			var userName = $('#hiddenUserName').val();
    		});

    上面方法本質就是添加onload監聽事件。

    最終修改后的頁面

    <!DOCTYPE html>
    <html lang="zh">
     
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    	<script type="text/javascript" src="jslib/jquery-1.11.2.min.js"></script>
    	<title>淺談Html頁面內容執行順序</title>
    	<script type="text/javascript">		
    		$(function(){
    			var userId = $('#hiddenUserId').val();
    			var contextPath = $('#hiddenContextPath').val();
    			var userName = $('#hiddenUserName').val();
    		});
    	</script>
    </head>
     
    <body>
    	<input type="hidden" id="hiddenUserId" value="101" />
    	<input type="hidden" id="hiddenContextPath" value="/web" />
    	<input type="hidden" id="hiddenUserName" value="小明" />
    </body>
     
    </html>

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费