如何使用提交输入按钮作为当前选项卡中另一个网页的链接?

问题描述 投票:-1回答:3

我想使用<input type="submit">按钮作为链接在当前选项卡中打开另一个网页。我正在使用属性multiple,但我想显示选择菜单like this

这是我的HTML:

<form id="link">
    <select multiple="multiple" > 	
	    <option value="" disabled selected hidden>Моля изберете</option>
  	    <option value="volvo">Кардиолог</option>
  		<option value="gastro.html" target="_blank">Гастроентеролог</option>
  		<option value="mercedes">Ортопед</option>
  		<option value="audi">Дерматолог</option>
  		<option value="audi">Уролог</option>
	</select >
	<div class="btn">
	<button class="SubmitButton" type="submit" name="SUBMITBUTTON" value="Submit" onsubmit="return validateForm();" >Търси</button>
    </div>
</form>

这是我的Javascript和jQuery:

$('#link').on('submit', function (e) {
    // e.preventDefault();
    var $form = $(this),
        $select = $form.find('select'),
        links = $select.val();
    if (links.length > 0) {
        for (i in links) {
            link = links[i];
            window.open(link);
        }
    }
});      

我如何重写代码,以便用户提交表单时,新网页在当前选项卡中打开,而不是在新窗口中打开?

javascript jquery html css
3个回答
0
投票

您无法更改window.open的行为。这是用户首选项和浏览上下文:https://developer.mozilla.org/en-US/docs/Web/API/Window/open

但是您可以更改代码。如果使用的是API,则无需打开新链接,只需单击fetch此链接并在某个位置显示结果即可。

但是由于它看起来不像API ...您可以使用一些AJAX技术来获取其内容并将其放在当前页面的元素中(但在2010年它看起来像是一个Web)。


0
投票

尝试猜测您的问题,答案应该是:执行preventDefault,然后禁用提交按钮。现在,您可以打开“标签”。这样,用户只能提交一次,而不能打开新页面


0
投票

问题

在Java语言中,您使用window.open(link)打开了链接。但是,此Javascript函数会在新窗口中打开URL。您希望URL在当前选项卡中打开,而不是在新窗口或新选项卡中打开。

解决方案

在代码中替换此行:

window.open(link);

用此行:

window.location.href = link;

此Javascript函数可刺激点击链接。

或者只是用我的代码片段中的Java语言替换您的Java语言。我还用首选方法.on(‘submit’, function(e) {…});更改了已过时的.submit(function(e) {…});函数。

<form id="link">
    <select multiple="multiple" > 	
	    <option value="" disabled selected hidden>Моля изберете</option>
  	    <option value="volvo">Кардиолог</option>
  		<option value="gastro.html" target="_blank">Гастроентеролог</option>
  		<option value="mercedes">Ортопед</option>
  		<option value="audi">Дерматолог</option>
  		<option value="audi">Уролог</option>
	</select >
	<div class="btn">
	<button class="SubmitButton" type="submit" name="SUBMITBUTTON" value="Submit" onsubmit="return validateForm();" >Търси</button>
    </div>
</form>

$('#link').on('submit', function (e) {
    // e.preventDefault();
    var $form = $(this),
        $select = $form.find('select'),
        links = $select.val();
    if (links.length > 0) {
        for (i in links) {
            link = links[i];
            window.open(link);
        }
    }
});      
© www.soinside.com 2019 - 2024. All rights reserved.