Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择值列表时返回浏览器按钮_Javascript_Jquery_Jquery Plugins - Fatal编程技术网

Javascript 选择值列表时返回浏览器按钮

Javascript 选择值列表时返回浏览器按钮,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,提交表单后单击浏览器后退按钮时,我试图保留下拉选择中的值列表。我试着使用Ben Alman的bbq jquery,但没有成功。我一直在尝试的。请帮忙 非常感谢 HTML 姓名号码 A. B C 1. 2. 3. JQuery: var selected_value = []; $('#mynumber').change(function() { var name = $('#myname').val(); var number = $('#mynumber').val();

提交表单后单击浏览器后退按钮时,我试图保留下拉选择中的值列表。我试着使用Ben Alman的bbq jquery,但没有成功。我一直在尝试的。请帮忙

非常感谢

HTML


姓名号码
A.
B
C
1.
2.
3.
JQuery:

var selected_value = [];
$('#mynumber').change(function() {
    var name = $('#myname').val();
    var number = $('#mynumber').val();

    $("#tabName tr:last").before("<tr><td>" + name + "</td><td>" + number + "</td></tr>");
    selected_value.push(name);
});

$('#formName').submit(function() {
    $.bbq.pushState({
        values: selected_value
    });
    //return false;
});

$(window).bind("hashchange", function(e) {
    var values = $.bbq.getState("url");
    if (selected_value === values) {
        $(this).addClass("current");
    } else {
        $(this).removeClass("current");
    }
});
var选择值=[];
$('#mynumber')。更改(函数(){
var name=$('#myname').val();
var number=$('#mynumber').val();
$(“#tabName tr:last”)。在(“+name+”“+number+”)之前;
选择的_值。推送(名称);
});
$('#formName')。提交(函数(){
$.bbq.pushState({
值:选定的值
});
//返回false;
});
$(窗口).bind(“hashchange”,函数(e){
var值=$.bbq.getState(“url”);
如果(所选值===值){
$(此).addClass(“当前”);
}否则{
$(此).removeClass(“当前”);
}
});
基于location.hash的我的解决方案(没有cookie或localStorage):

function addRow(name, number){
    $("#tabName tr:last").before("<tr><td>" + name + "</td><td>" + number + "</td></tr>");
}

$(function(){
    if(location.hash){
        var rows = location.hash.substr(1).split(';');
        for(var i = 0; i < rows.length; i++){
            var row = rows[i].split(',');
            if(row.length == 2){
                addRow(row[0], row[1]);
            }
        }
    }

    $('#mynumber').change(function() {
        var name = $('#myname').val();
        var number = $('#mynumber').val();
        location.hash = location.hash + (location.hash ? ';' : '') + name + ',' + number;
        addRow(name, number);
    });
});
函数addRow(名称、编号){
$(“#tabName tr:last”)。在(“+name+”“+number+”)之前;
}
$(函数(){
if(location.hash){
var rows=location.hash.substr(1.split(“;”);
对于(变量i=0;i
我认为它符合你的要求——如果没有,请在评论中给我一些反馈

$('#formName').submit(function() {
    $.bbq.pushState({
        values: selected_value
    });
    //return false;
});
应该是

$('#formName').submit(function() {
    $.bbq.pushState({
        values: selected_value
    });
    //return false;
});
var values = $.bbq.getState("values");

应该是

$('#formName').submit(function() {
    $.bbq.pushState({
        values: selected_value
    });
    //return false;
});
var values = $.bbq.getState("values");

请将您的代码放在这里,而不仅仅是链接到jsfiddle您尝试过任何cookies/localStorage解决方案吗?@DGT您不能在页面刷新时简单地从服务器发送这些值吗?ad.1 JS对象会将所有键静默地转换为字符串,这样您就不必放置“无处不在”了!谢谢。抱歉,无法提前回复您。抱歉,忘记单击赏金图标。