2014-11-23 33 views
0

我有這個問題.html()jQuery .html()不返回表單值

我有一個鏈接,這有助於問題的50%。

jquery html() does not return changed values

$("input").each(function(){ 
     $(this).attr("value", $(this).val()); 
}); 

$("select").each(function(){ 
     $(this).find('option[value='+$(this).val()+']').attr("selected", "selected"); 
}); 

它的工作,但只返回的輸入值。我怎麼做textareas,單選按鈕,複選框,我搜索了很多。找不到以上的鏈接。

回答

0

如果你想獲得輸入,文本框,區域選擇..等所有值。把它們放在窗體中,並使用serializeArray() api。你會得到所有作爲的JSONObject ..

1

只是使用jQuery的serialize() function

$("#myform").serialize(); 

例子(注意,如果它被選中該複選框只添加)

var result = $('#res'), 
 
    btn = $('#mybutton'); 
 

 
btn.on('click', function() { 
 
    
 
    var data = $('#myform').serialize(); 
 
    result.text(data); 
 
    
 
});
* { 
 
    font-family: Ubuntu, sans-serif; 
 
} 
 

 
label { 
 
    display: block; 
 
    margin: 5px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="myform"> 
 

 
\t <label for="text-input">example Text Input</label> 
 
\t <input type="text" name="text-input" id="text-input" /> 
 

 
\t <label for="textarea">example Textarea</label> 
 
\t <textarea name="textarea" id="textarea"></textarea> 
 

 
\t <label for="checkbox">example Checkbox</label> 
 
\t <input type="checkbox" name="checkbox" id="checkbox"> 
 

 
</form> 
 
<br> 
 
<button id="mybutton">Serialize!</button> 
 
<br> 
 
<div id="res"></div>

請注意,serialize以字符串形式返回值,但您也可以使用serializeArray將它們作爲JavaScript數組對象