2012-01-17 112 views
3

如何使用jquery(或其他任何事情)從jquery.get()調用的回調中獲取表單值,只要它是html ?使用jquery獲取html表單輸入值的原始html

例如,假設下面的調用:

$.get('somePage.aspx', function (data) { 
    alert('here'); 
      }); 

調用下面的HTML回調函數:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title></title></head> 
<body> 
    <form name="form1" method="post" action="frmMontageWait.aspx?action=checkStatus&amp;guid=a224b7c3-fec8-4b55-870e-a33f15bad629" id="form1"> 
<div> 
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTc5NTA2NTY5NmRkyx3R93TAvDqSvxEh6aKHeTSr0ZI=" /> 
</div><div> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwLA8/fiDgLP15SfBAKG69WwDBRTCbRBksmbw/qTkRQ4tx/K3bES" /> 
</div> 
     <input type="hidden" name="hdnInput1" id="hdnInput1" value="100" /> 
     <input type="hidden" name="hdnInput2" id="hdnInput2" value="99" /> 
    </form> 
</body> 
</html> 

你如何去獲得回調hdnInput1和hdnInput2的值?

回答

4

代碼中的data變量存儲服務器響應,您可以解析它以獲取所需的信息。默認情況下,該服務器響應將是純文本,所以你要這個字符串解析爲一個jQuery對象,這將創造DOM元素出來的字符串:

//DOM-ize the server-response 
data = $(data); 

//now we can search the server-response like it is in the DOM (but it isn't) 
var inputOne = data.find('#hdnInput1').val(), 
    inputTwo = data.find('#hdnInput2').val(); 

此代碼放在你的success回調您的AJAX調用。

這裏是一個演示:http://jsfiddle.net/PDHbV/

我不是100%肯定,你張貼的HTML保存在data變量,如果它不是,那麼是不是意味着HTML已經在DOM和你可以搜索一般:

var inputOne = $('#hdnInput1').val(), 
    inputTwo = $('#hdnInput2').val(); 
1
val1 = $('#hdnInput1').val(); 
val2 = $('#hdnInput2').val(); 
+1

這將創建全局變量(這是沒有必要的)。要將變量放在正確的範圍內,請使用'var'語句:'var val1 = $('#hdnInput1')。val(), val2 = $('#hdnInput2')。val();' – Jasper 2012-01-17 20:57:04