2

我正在做基于 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>
4

1 回答 1

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);
...
于 2012-06-10T14:21:40.543 回答