You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript表单验证问题:validateSongandTitle函数失效求助

表单歌曲与标题验证函数失效的原因及修复

你的validateSongandTitle函数无法正常工作的核心问题是判断逻辑错误:

  • 你通过document.forms["AddVid"]["songid"].value获取的是下拉框选项的value属性值,而默认选项<option value="">No song selected</option>的value是空字符串"",不是文本内容"No song selected"。
  • 所以你的判断条件b == "No song selected"永远不会成立,导致即使未选歌曲且未填标题,也不会触发错误提示。

修复后的validateSongandTitle函数

function validateSongandTitle() {
    var b = document.forms["AddVid"]["songid"].value;
    var c = document.forms["AddVid"]["title"].value;
    // 先清空之前的错误提示
    document.getElementById('formtitle').innerHTML = "";
    // 正确判断:当songid的value为空(未选歌曲)且title为空时,验证失败
    if (b === "" && c.trim() === "") {
        document.getElementById('formtitle').innerHTML = "<small><font color='red'>Video title *Required</font></small>";
        return false;
    }
    return true;
}

额外优化建议

  1. 给validateYouTube函数也加上清空错误提示的逻辑,避免验证通过后旧提示残留:
function validateYouTube() {
    var a = document.forms["AddVid"]["ytcode"].value;
    document.getElementById('formyoutubecode').innerHTML = "";
    if (a == null || a.trim() === "") {
        document.getElementById('formyoutubecode').innerHTML = "<small><font color='red'>YouTube Code Required</font></small>";
        return false;
    }
    return true;
}
  1. 使用trim()处理输入值,避免用户输入空格被误判为有效内容。

内容的提问来源于stack exchange,提问作者Mitch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 09:30:35