Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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_Node.js_Forms - Fatal编程技术网

Javascript 表单下拉选择链接

Javascript 表单下拉选择链接,javascript,jquery,node.js,forms,Javascript,Jquery,Node.js,Forms,我有一个选择下拉列表,一旦用户指定了品牌,我希望它在两个新的标签中为两个URL链接。我怎样才能做到这一点,最好是先完成onclick事件以提交,然后通过selects运行带有if和else的函数。有什么建议吗?这是我目前的代码 <fieldset> <legend><span class="number">1</span>Select a Brand</legend> <label for="

我有一个选择下拉列表,一旦用户指定了品牌,我希望它在两个新的标签中为两个URL链接。我怎样才能做到这一点,最好是先完成onclick事件以提交,然后通过selects运行带有if和else的函数。有什么建议吗?这是我目前的代码

     <fieldset>

      <legend><span class="number">1</span>Select a Brand</legend>

      <label for="Brand">Brand:</label>
      <select id="brandSelect" name="brand_select">
        <optgroup label="Grills">
          <option value="http://site1.com", "http://site1A.com">DCS</option>
          <option value="http://site2.com", "http://site2A.com">Alfresco</option>
          <option value="http://site3.com", "http://site3A.com">Viking</option>
          <option value="http://site4.com", "http://site4A.com">Fire Magic</option>
          <option value="http://site5.com", "http://site5A.com">Lynx</option>
          <option value="http://site6.com", "http://site6A.com">Coyote</option>
        </optgroup>
      </select>

    </fieldset>

    <button type="submit">Sign Up</button>
    <script type="text/javascript">
       var urlmenu = document.getElementById( 'brandSelect' );
       urlmenu.onchange = function() {
            window.open( this.options[ this.selectedIndex ].value );
       };
    </script>
给每个窗口一个唯一的名称应该可以做到这一点。
尝试定义窗口名称:

此代码用于生成从0到10000的随机数

Math.round(Math.random()*10000)
级联随机化数字和单词窗口的名称,如window777,uniq的每次调用事件处理函数

"window"+Math.round(Math.random()*10000)
作为每个调用的uniq名称,方法window.open将在当前情况下创建新的窗口选项卡

窗口中的加载项。打开调用

window.open( this.options[ this.selectedIndex ].value, "window"+Math.round(Math.random()*10000));

以上就是假设您有两个URL选项值,例如:

<label for="Brand">Brand:</label>
<select id="brandSelect" name="brand_select">
    <optgroup label="Grills">
        <option value="http://site1.com http://site1A.com">DCS</option>
        <option value="http://site2.com http://site2A.com">Alfresco</option>
        <option value="http://site3.com http://site3A.com">Viking</option>
    </optgroup>
</select>

使用所需的任何参数

请尝试解释您所做的操作,而不是在页面上抛出代码。解释添加了您不需要生成唯一的名称,只需使用_blank即可。如果以后需要参考该窗口,请保存window.open的返回值。。。var myWindow=window.openurl,为空;我希望浏览器可以同时打开两个具有不同URL的选项卡。只需在一个函数中使用这段代码两次并设置不同的URL。如何将两个不同的URL作为一个选项放在选择列表中?e、 g.选项的值是两个空格分隔的URL,还是什么?修改上面的问题代码/标记,这样它就有了一个你要做的事情的例子。好的,我在原来的帖子中改进了我的问题。所以值=http://site6.com, http://site6A.com 是非法的-诸如value之类的属性必须设置为单引号字符串。这将是合法的:价值=http://site6.com, http://site6A.com 或者简单地使用一个空格值=http://site6.com http://site6A.comThanks 感谢你的帮助,这一切都成功了!如果我想更改它,以便当他们点击提交按钮或调用操作时,我可以通过创建附加到函数的onClick事件来实现吗?@CodeWeaver。。。如果这能奏效,我会很感激你能接受答案,也许还能投票@CodeWeaver-是的,您可以将onsubmit处理程序添加到表单或将onclick处理程序添加到任何内容。不要使用、更喜欢或使用框架,例如
<label for="Brand">Brand:</label>
<select id="brandSelect" name="brand_select">
    <optgroup label="Grills">
        <option value="http://site1.com http://site1A.com">DCS</option>
        <option value="http://site2.com http://site2A.com">Alfresco</option>
        <option value="http://site3.com http://site3A.com">Viking</option>
    </optgroup>
</select>
<script type="text/javascript">
   var urlmenu = document.getElementById( 'brandSelect' );
   urlmenu.onchange = function() {
        var urls = this.options[ this.selectedIndex ].value.split(' ');
        urls.forEach( function(url) {
            window.open( url /*, '_blank'*/); // add a window name if desired
        });
   };
</script>