57

编辑:解决方案是将其添加到个人资料页面而不是性别页面。

$('#profile').live( 'pageinit',function(event){
$('p#pTest').text(localStorage.getItem('gender'));

});

我在列表视图中有一段带有 som 文本的段落,我想在单击保存后以编程方式从另一个页面更改。

编辑:这是我在 profile.html 中的列表视图。当您单击该项目时,您会进入另一个页面,您可以在其中保存您的性别。我想将此列表视图中的段落更改为从其他页面更改的性别。

<ul data-role="listview"   >
    <li><a href="gender.html">
        <img src="images/gender2.jpg" />
        <h3>Gender</h3>
        <p id="pTest">Male</p>
    </a></li> </ul>

性别 html 页面只是带有两个单选按钮和一个保存按钮的基本内容。这是我的 javascript 代码(在单独的文件中):

$('#gender').live('pageinit', function(event) {

    var gender = localStorage.getItem('gender');
    var boolMale = true;
    if (gender == "female") boolMale = false;
    $('#radio-choice-male').attr("checked",boolMale).checkboxradio("refresh");
    $('#radio-choice-female').attr("checked",!boolMale).checkboxradio("refresh");

    $('#saveGenderButton').click(function() {
        if ($('#radio-choice-male').is(':checked'))
            localStorage.setItem('gender', "male");
        else localStorage.setItem('gender', "female");

        $('#pTest').html('test'); //does not work
         //$('p#pTest').text('test'); //does not work
         //$('#pTest').text('test'); //does not work
        $.mobile.changePage("profile.html");
    });
});

我用javascript试过这个:$('p#pTest').text('test');

然而文本没有改变。(我知道保存按钮有效)。这可能吗?

4

3 回答 3

102

试试下面,注意当用户刷新页面时,值又是“男性”,数据应该存储在数据库中。

$('button').click(function(){
     $('#pTest').text('test')
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script>

<p id="pTest">Male</p>
<button>change</button>

于 2012-05-07T17:02:42.460 回答
0

“保存”与使用 jquery 更改段落内容完全不同。

如果您需要保存更改,则必须以某种方式将它们写入您的服务器(可能是表单提交以及所需的所有安全性和输入清理)。如果您有保存在服务器上的信息,那么您将不再更改段落的内容,而是绘制具有动态内容的段落(来自数据库或服务器在您执行“保存”时更改的文件) .

从你的问题来看,这是一个你必须做更多研究的话题。

输入页面(input.html):

<form action="/saveMyParagraph.php">
    <input name="pContent" type="text"></input>
</form>

保存页面(saveMyParagraph.php)和输出页面(output.php):

使用 PHP 将数据插入 MySQL 数据库

于 2012-05-07T17:20:44.693 回答
0

似乎您将单击事件包裹在自定义事件名称“pageinit”周围,您确定在单击按钮之前触发了该事件吗?

像这样的东西:

$("#gender").trigger("pageinit");
于 2012-05-07T17:26:03.120 回答