繁体   English   中英

选项onsubmit和Alert不能一起使用

[英]option onsubmit and alert not working together

我正在寻找的是一种简单的方法,即使用带有一组选项的表单来在选择默认条目时发出警报,但要在新选项卡或窗口中正确打开正确的链接集。

当创建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
    }

}

但是,我很难让两个onsubmit一起工作。 我尝试了这个:

<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行)。

很简单,您只需要在函数内部return true

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM