HTML,javascript:按钮点击验证不起作用

时间:2015-06-05 20:11:15

标签: javascript html validation

我正在尝试验证(如果它们有价值)我的html的前两个下拉列表。点击按钮getURL我将验证下拉列表中是否有任何选定的值,如果是,我想继续function getURL
但是在验证后不久,如果第二个Dropbox中没有值,则控件不会停止。它继续显示URL 我希望仅在前两个下拉列表中显示值时显示URL。但现在使用我的以下代码,我很快就会在alert:url

之后收到alert:select product version

使用Javascript:

function validate() {
    var pname = document.getElementById("selProductName");
    if(pname.selectedIndex == 0) {
         alert('select product name');
    }

    var pversion = document.getElementById("selProductVersion");
    if(pversion.selectedIndex == 0) {
         alert('select product version');
         return false;
    }
  return true;
}

function getURL() {         
    validate();
    // I have code here to create desired URL
    alert("url:" + url);
}

HTML:

Product Name:
<select id="selProductName" name="selProductName" onchange="changeProductName(this.value);">
<option>--Choose Product Name--</option>
</select>
<br>Product Version:
<select id="selProductVersion" name="selProductVersion" onchange="changeProductVersion(this.value);">
</select>
<br>File Name:
<select id="selFileName" name="selFileName"></select>
<br><button onclick="getURL()">Get URL</button>

2 个答案:

答案 0 :(得分:3)

make[1]: Entering directory `/usr/local/cuda-7.0/samples/3_Imaging/cudaDecodeGL' /usr/local/cuda-7.0/bin/nvcc -ccbin g++ -m64 -gencode arch=compute_20, code=compute_20 -o cudaDecodeGL FrameQueue.o ImageGL.o VideoDecoder.o VideoParser.o VideoSource.o cudaModuleMgr.o cudaProcessFrame.o videoDecodeGL.o -L../../common/lib/linux/x86_64 -L/usr/lib/"nvidia-346" -lGL -lGLU -lX11 -lXi -lXmu -lglut -lGLEW -lcuda -lcudart -lnvcuvid /usr/bin/ld: cannot find -lnvcuvid collect2: error: ld returned 1 exit status make[1]: *** [cudaDecodeGL] Error 1 make[1]: Leaving directory `/usr/local/cuda-7.0/samples/3_Imaging/cudaDecodeGL' make: *** [3_Imaging/cudaDecodeGL/Makefile.ph_build] Error 2 执行并返回false。好。然后?然后脚本继续并提醒网址。

目前:

validate()

您应该使用:

function getURL() {         
    validate(); // Returns true or return false, no consequence.
    alert("url:" + url); // Always happens.
}

答案 1 :(得分:0)

您的验证功能正是如何工作的。问题是你永远不会检查以确保验证没有返回false。相反,即使validate()确实返回false,您也只是打印URL。这是一个应该有效的getURL()函数的编辑版本。

function getURL() {         
    var isValid = validate();
    // Code to create URL

    // Only alert the formed URL if isValid doesn't equal false
    if(isValid != false) alert("url:" + url);
}