我正在使用基于JQM和http://dl.dropbox.com/u/49735179/dialog-data-transfer.html的移动网站。
如果点击“dialogPage”部分的搜索结果之一提交按钮, 它应该显示在zip1,zip2,addr表单的“mainPage”部分。
但是zip_code1,zip_code2,addr的表单值 不转移到“mainPage”部分。
这个脚本有什么问题?
这是完整的脚本+ html。
<!DOCTYPE html>
<html>
<head>
<title>Test Dialog</title>
<meta charset="utf-8" />
<meta name="viewport" content="height=device-height,width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
</head>
<body>
<script>
$(document).ready(function() {
$('form').submit(function(){
var inputVal1 = $('input[name=zip_code1]').val();
var inputVal2 = $('input[name=zip_code1]').val();
var inputVal3 = $('input[name=addr]').val();
$("#mainPage").data("inputVal1", inputVal1);
$("#mainPage").data("inputVal2", inputVal2);
$("#mainPage").data("inputVal3", inputVal3);
})
});
$('#mainPage').live('pageshow', function(){
var inputVal1 = $(this).data('inputVal1') ? $(this).data('inputVal1') : "<? $defaultValue1 ?>";
var inputVal2 = $(this).data('inputVal2') ? $(this).data('inputVal2') : "<? $defaultValue2 ?>";
var inputVal3 = $(this).data('inputVal3') ? $(this).data('inputVal3') : "<? $defaultValue3 ?>";
$('div input[name=zip1]').val(inputVal1);
$('div input[name=zip2]').val(inputVal2);
$('div input[name=addr]').val(inputVal3);
});
</script>
<section id="mainPage" data-role="page">
<header data-role="header"><h1>Header</h1></header>
<div data-role="content">
<div>
<input type="text" name="zip1" value="">-<input type="text" name="zip2" value="">
<input type="text" name="addr" value="">
</div>
<a href="#dialogPage" data-role="button" data-transition="pop">Open Dialog</a>
</div>
<footer data-role="footer"><h1>Footer</h1></footer>
</section>
<!-- ## DIALOGS ## -->
<section id="dialogPage" data-role="dialog" data-theme="d">
<header data-role="header"><h1>Header</h1></header>
<div data-role="content">
<h3>Input Dialog</h3>
<INPUT type="text" autocomplete="off" value="" id="k"><input type="submit" value="search" onClick="kin()" data-role="button">
<DIV id="serverMsg"></DIV>
<form>
<input type=hidden name=zip_code1 value='code1'>
<input type=hidden name=zip_code2 value='code2'>
<input type=hidden name=addr value='address1'>
<table><tr>
<td width=50>code1 - code2</td>
<td>address1</td>
</tr></table>
<input type="submit" value='address1' />
</form>
<form>
<input type=hidden name=zip_code1 value='code4'>
<input type=hidden name=zip_code2 value='code5'>
<input type=hidden name=addr value='address2'>
<table><tr>
<td width=50>code4 - code5</td>
<td>address2</td>
</tr></table>
<input type="submit" value='address2' />
</form>
<form>
<input type=hidden name=zip_code1 value='code6'>
<input type=hidden name=zip_code2 value='code7'>
<input type=hidden name=addr value='address2'>
<table><tr>
<td width=50>code6 - code7</td>
<td>address3</td>
</tr></table>
<input type="submit" value='address3' />
</form>
</div>
</div>
<footer data-role="footer"></footer>
</section>
</body>
</html>
答案 0 :(得分:1)
使用attr
方法,data()
方法不会创建data
属性;
$(document).ready(function() {
$('form').submit(function(){
var inputVal1 = $('input[name=zip_code1]').val();
var inputVal2 = $('input[name=zip_code1]').val();
var inputVal3 = $('input[name=addr]').val();
$("#mainPage").attr("data-inputVal1", inputVal1);
$("#mainPage").attr("data-inputVal2", inputVal2);
$("#mainPage").attr("data-inputVal3", inputVal3);
...