sessionStorage不起作用

时间:2015-02-26 19:35:22

标签: javascript jquery html session

好的,我有这个输入" textmoney"这需要用户输入并显示他们一年可以赚多少钱。当用户按下输入时,将弹出一个链接,该链接将转到另一个页面,该页面可以更准确地估计第一个答案。我希望第二页有一个sessionStorage" textmoney"从第一页开始,这样用户就不必再次输入数据了。我编码了这个,我似乎根本无法工作。我做错了什么?

第一页:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script>

    $(document).ready(function() {

    var $demo = $('#demo');
    var $textMoney = $('#textmoney');
    var $moneydiv = $('#moneydiv');
    // Store
    sessionStorage.setItem("textmoney", $textMoney.val());

    $('#advanced').hide();

    function getmoney(){
        var money = $textMoney.val();
            if (isNaN(money) || money === '') {
                $demo.text('You aint enter no $$$$$$');
            } else {
                var dailyE = $textMoney.val() * 365;
                $demo.text('$' + dailyE + ' per day');
            }
    }

    // on enter key
    $textMoney.keydown(function(e) {
        if (e.which === 13) {
            getmoney();
            $('#advanced').show();
        } else if ($(this).val() === '') {
            $demo.text('');
            $('#advanced').hide();
        }

    }).mouseover(function() {
        $(this).css('border', '1px solid black');
    }).mouseout(function() {
        $(this).css('border', '1px solid grey');
    });

    // on click 
    $moneydiv.click(function(){    
        getmoney();
        $('#advanced').show();
    });

});
    </script>

第二页:

<body>
    <p id="workp"> How many days a week do you work? </p>
    <input type="text" id="workdays">
    <hr id="line1">

    <p id="taxesp"> What percent of taxes does the Government take? </p>
    <input type="text" id="taxes">
    <hr id="line2">

    <p id="bonusp"> What's your average yearly bonus? </p>
    <input type="text" id="bonus">
    <hr id="line3">

    <p id="demo"></p>
    <div id="calculate"> Calculate </div>

    <a href="moneyperday.html"> Back to calculator </a>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script>

        $(document.ready(function() {
        var $money = sessionStorage.getItem('textmoney');

        var $workdays = $('#workdays').val() * 52;
        var $moneynow = $money * $workdays;
        var $taxes = $('#taxes').val() / 100;
        var $bonus = $('#bonus').val();
        var $totalbalance = $moneynow * $taxes + $bonus;
        var $calculate = $('#calculate');


        function getmoney() {
            $demo.text($totalbalance + " " + "per day");
        }

        //on click
        $calculate.click(function() {
            getmoney();
        }


    })
    </script>

1 个答案:

答案 0 :(得分:0)

在第一页中,您将在页面加载后立即设置sessionStorage。你提交时需要这样做:

function getmoney(){
    var money = parseInt( $textMoney.val() );
    sessionStorage.setItem("textmoney", money ); // Right here
    if (isNaN(money) || !money ) {
        $demo.text('You aint enter no $$$$$$');
    } else {
        var dailyE = money * 365;
        $demo.text('$' + dailyE + ' per day');
    }
}

另请注意我添加的parseInt(),只是为了确保将值视为数字,而不是字符串(尽管在大多数浏览器中它都可以在没有它的情况下使用)。