gpt4 book ai didi

javascript - 选项 onsubmit 和alert 不能一起工作

转载 作者:行者123 更新时间:2023-11-28 00:09:58 27 4
gpt4 key购买 nike

我正在寻找一种简单的方法,让表单包含一组选项,以便在选择默认条目时发出警报,但要在新选项卡或窗口中正确打开一组正确的链接。

创建 onsubmit 事件以打开表单内链接的新窗口时,它本身可以正常工作,但不能与警报一起使用。

问题就在这里。我有一个简单的选项,选择从数据库中提取数据,并且 onsubmit 可以很好地在新选项卡或窗口中打开此链接。下面的代码适用于所有存在的链接

<form method="get" name="dbs" onsubmit="window.open(link.value,'_blank');return false" >

<select name="link" class="required">'
<option value="blank" selected disabled="disabled">Select a specific database from the following:</option>

<?php
while($row = mysqli_fetch_array($rs)) {
echo '<option value="'.$row['url'] . '" >'. $row['source_name'] . '</option>';
}
echo '</select>';
?>

但是,问题出在第一个默认选定的行上。当然,它会在新窗口中显示 404 错误。

我一直在尝试运行一个函数,如果用户尝试提交第一个默认选项(“选择特定的..等”),该函数会发出警报

这是我尝试过的。

我创建了这个函数来验证条目:

function checkSubmit() {

if (document.getElementsByName('link')[0].value == 'blank' ) {

alert('Please select a database'); return false
}

}

但是,我一直很难让两个 onsubmits 一起工作。我试过这个:

<form method="get" name="dbs" onsubmit="checkSubmit() && window.open(link.value,'_blank');return false" >

该函数工作正常,但当我选择合法链接时什么也没有发生。

如果我将 && 更改为 &|||,警报会起作用,但是单击“确定”后,它会显示404,但合法链接有效。 这是我最接近的,但我希望警报只是停止表单,并且仅在选择第一个条目时起作用.

我尝试将 onsubmit 移到函数中,如下所示:

function checkSubmit() {

if (document.getElementsByName('link')[0].value == 'blank' ) {

alert('Please select a database'); return false
}
else {
window.open(link.value,'_blank');return false
}

}

警报再次正常工作,但是else对于合法链接根本不起作用:它只是刷新页面,根本没有任何操作。

希望得到一些指点。我希望它只是在有人选择第一个选项值时发出警报,而不是其余选项值。我也不希望刷新页面(因此出现 return false 行)。

最佳答案

很简单,您只需在函数内返回 true 即可。

function checkSubmit() {
if (document.getElementsByName('link')[0].value == 'blank' ) {
alert('Please select a database');
return false;
}
return true;
}

之前发生的情况是 falseundefined 被返回到 && 的第一部分。由于两者都是虚假值,因此从未达到第二部分。

关于javascript - 选项 onsubmit 和alert 不能一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30987043/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com