选项onsubmit和警告不能一起工作

时间:2015-06-22 18:17:58

标签: javascript php

我正在寻找的是一种简单的方法,如果选择了默认条目,则可以使用包含一组选项的表单来提供警报,但是在新选项卡或窗口中正确打开正确的链接集。 / p>

创建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错误。

我一直在尝试运行一个函数,如果用户尝试提交第一个默认选项(&#34;选择特定的......等等#34;),它将发出警报。

这是我尝试过的。

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

function checkSubmit() {

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

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

}

但是我很难让两个提交的人一起工作。我试过这个:

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

并且该功能正常,但当我选择合法的链接时,根本没有任何事情发生。

如果我将&&更改为&|||,则警报会有效,但点击“确定”后会显示 404 < / strong>,但合法链接有效。 这是我最接近的 ,但我希望警报只是停止表单,只有当第一个条目时才会工作

我尝试将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行)。

1 个答案:

答案 0 :(得分:1)

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

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

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