2013-03-02 62 views
1

我试图在jQuery手机中的两个页面之间传递值。除收音机以外,我没有任何问题。随着下一页的收音机,我收到一个Uncaught ReferenceError。jQuery手机,通过无线电检查页面之间的值

这里是我的代码的简化版本。

$(document).on('pageinit', '#page1', function(){ 

    $('#validate1').submit(function(){ 

    var inputVal = $('[name=inputVal]').val(); 
    var radioVal = $('#form1 input[type="radio"]:checked').val(); 
    // Also tried this 
    // var radioVal = $('input[name=radioVal]:checked', '#validate1').val(); 

    console.log(radioVal); // Works 

    $.mobile.changePage('#page2'); 
    return false; 

    }); 

}); 

$(document).on('pageinit', '#page2', function(){ 

    console.log(inputVal.value); // Works 
    console.log(radioVal.value); // Uncaught ReferenceError: radioVal is not defined 

}); 

我用这种方法传递数据。

Passing data between pages with jQuery Mobile?

+0

“radioVal”和“inputVal”都是在第一页的“pageinit”处理程序**内部定义的。因此他们不会被其他处理程序使用。 (为什么“inputVal”的工作原理尚不清楚;可能在其他地方声明了冗余) – Pointy 2013-03-02 23:58:02

+1

从radioVal中删除了var关键字。为什么不只是把console.log(radioVal)。 http://jsfiddle.net/Zq32c/101/ – 2013-03-03 00:17:40

+0

哦,我觉得愚蠢,我想知道为什么我的JS小提琴工作太多,但不是我的代码。删除var工作,我忘记了变量范围。如果您将此作为答案发布,我会给您信用。谢谢。 – 2013-03-03 00:29:39

回答

0

初始化

var radioVal = ""; 

外 “pageinit”(或许在你的JS文件的顶部)

和pageinit干脆把

radioVal = $('#form1 input[type="radio"]:checked').val(); 

这样,你会将radioVal作为一个全局变量并使其有效无论何地