【问题标题】:Bookmarking a form submit button为表单提交按钮添加书签
【发布时间】:2014-05-17 08:08:08
【问题描述】:

我有一个表单,在提交时会打开用户在表单中检查的页面。
因此,用户在提交时检查了 site1 和 site2,它会打开这些页面。

现在我希望用户能够为提交按钮或其他东西添加书签...
有没有办法做到这一点。使用普通的超链接,您可以拖动它,但使用提交按钮时,情况并非如此......

书签仍然需要打开表单中选择的页面。

我的代码:

<form>
<input type="checkbox" id="site1" name="site1" value="site1">Site1<br>
<input type="checkbox" id="site2" name="site2" value="site2">Site2<br>
<input name="submit" value="open it up!" type="submit" onclick="validate()">
</form>

到目前为止的脚本:

function validate() {
    $(":checkbox:checked").each(function() {
        var sitename = $(this).val();
        window.open('http://www.' + sitename + '.com');
    });
    return false;
}

【问题讨论】:

  • 您可以将input type=submit.. 更改为超链接并使用css 将其设置为按钮
  • 您还需要动态更改其 href 属性,而不是使用 onclick/onsubmit 处理程序

标签: javascript forms function if-statement


【解决方案1】:

这是我结合@Sthephen Muecke 和@Dave 的想法的解决方案:

html:
    <input type="checkbox" id="site1" name="site1" value="site1" onclick="changeSite(this);">Site1<br>
    <input type="checkbox" id="site2" name="site2" value="site2" onclick="changeSite(this);">Site2<br>
    <input name="submit" value="open it up!" type="button" onclick="validate()">
    <div id="newLink"></div>

js:

window.validate= function() {
    $(":checkbox:checked").each(function() {
        var sitename = $(this).val();
        window.open('http://www.' + sitename + '.com');
    });
    return false;
}

window.changeSite= function(obj){
   var site = $(obj).val();
    $("#selectedSite").attr("href",site);
    $("#selectedSite").html(site);
    if($(obj).prop("checked")){
        $("<a/>",{
            id: site+"Test",
            href:site,
            html: site
        }).appendTo("#newLink");
    }
    else{
        $("#"+site + "Test").remove();
    }             
}

fiddle

当然你可以给&lt;a&gt;元素添加一个类并显示为按钮:

Link as button

当所有复选框都被选中时,打开所有网站:

Open all sites when more than one checkbox is checked

【讨论】:

  • 非常感谢!但是有没有办法将所有按钮组合成一个按钮。因此,如果您选中多个框,它会创建一个打开所有页面的按钮?
  • 你让我开心,先生!谢谢!
  • 我还有几个问题,但是通过这个“聊天”来回答它们需要很长时间,你有没有Skype或其他东西。我觉得你可以帮助我,但我觉得不得不在这里一直问很愚蠢......只需 Skype 聊天就足够了,不需要声音......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-23
  • 2013-01-09
  • 1970-01-01
相关资源
最近更新 更多