Javascript 强制下拉列表

Javascript 强制下拉列表,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个由后台生成的下拉列表。我无法更改后台对该下拉列表的编码方式。但是我需要为这个下拉列表强制用户选择 我正在使用以下代码,这在中起作用。但是,此代码会查看用户是否选择了值A以外的其他值,以确定是否进行了选择。但这在我的情况下还不够好,因为这个值指示在其他下拉列表中发生了变化。 我需要代码来查看用户选择是否已从文本PLEASE SELECT-$0,00更改-$0,00在不同的下拉列表中可能也会有所不同,因此我需要代码仅对下拉文本的PLEASE SELECT部分进行筛选 在这种情况下,我还需要浏

我有一个由后台生成的下拉列表。我无法更改后台对该下拉列表的编码方式。但是我需要为这个下拉列表强制用户选择

我正在使用以下代码,这在中起作用。但是,此代码会查看用户是否选择了值A以外的其他值,以确定是否进行了选择。但这在我的情况下还不够好,因为这个值指示在其他下拉列表中发生了变化。 我需要代码来查看用户选择是否已从文本PLEASE SELECT-$0,00更改-$0,00在不同的下拉列表中可能也会有所不同,因此我需要代码仅对下拉文本的PLEASE SELECT部分进行筛选

在这种情况下,我还需要浏览器不要要求关闭这些警告

有人能帮忙吗

function selection()
{    
 var cat = document.getElementById('select').value;    
    if (cat == "A") {

            alert('Please make a selection');
            return false;
   }
    return true;
}

在范围内发出所需的任何文本警报,而不是使用警报


检查更新后的

警报,在范围中输入您想要的任何文本,而不是使用警报


检查更新的

您可以尝试以下方法:

function selection()
{    
 var cat = $('#select option:selected').val();    
    if (cat == $('#select option:first-child').val()) {

            alert('Please make a selection');
            return false;
   }
    return true;
}

对于警告,您需要将警报更改为模式或在页面上以通知/警告消息的形式出现,您可以尝试以下操作:

function selection()
{    
 var cat = $('#select option:selected').val();    
    if (cat == $('#select option:first-child').val()) {

            alert('Please make a selection');
            return false;
   }
    return true;
}

对于警告,您需要将您的警报更改为模式或在页面上作为通知/警告消息

因此您的问题中有几个问题,让我们从

1确保所选项目不是以“请选择”开头

function selection()
{    
    var sel = document.getElementById('select');    
    var selectedText = sel.options[sel.selectedIndex].text;
    if (selectedText.startsWith("PLEASE SELECT")) {

            alert('Please make a selection');
            return false;
   }
    return true;
}
2停止用户强制浏览器不再允许警报


这不是你能控制的。如果你想完全控制一个模型对话框,那么有很多这样的对话框可供选择——bootstrap有一个,jQueryUI有一个。您正在使用的任何UI框架几乎肯定都会有一个

,因此您的问题中有几个问题,让我们从

1确保所选项目不是以“请选择”开头

function selection()
{    
    var sel = document.getElementById('select');    
    var selectedText = sel.options[sel.selectedIndex].text;
    if (selectedText.startsWith("PLEASE SELECT")) {

            alert('Please make a selection');
            return false;
   }
    return true;
}
2停止用户强制浏览器不再允许警报



这不是你能控制的。如果你想完全控制一个模型对话框,那么有很多这样的对话框可供选择——bootstrap有一个,jQueryUI有一个。您正在使用的任何UI框架几乎肯定都会有一个

您无法控制浏览器如何显示警报。如果您需要对此进行精确控制,请滚动您自己的对话框或使用数千个可用对话框中的一个。如果该值不是第一个元素值,请使用模态测试替换警报。我将如何执行模态测试?您无法控制浏览器显示警报的方式。如果您需要对其进行精细控制,请滚动您自己的对话框或使用数千个可用对话框中的一个。如果该值不是第一个元素值,请使用模态测试替换警报。我将如何进行模态测试?您肯定不希望使用文本吗val@Jamiec为什么?我没注意到你在比较价值观——这当然也行。OP实际指定了他们想要启动的任何选项,请选择。虽然这并不完全符合他们的要求,但我同意这有着大致相同的最终结果。你肯定不想要文本吧val@Jamiec为什么?我没注意到你在比较价值观——这当然也行。OP实际指定了他们想要启动的任何选项,请选择。虽然这并不完全符合他们的要求,但我同意它的最终结果大致相同。谢谢!您的代码在JSFIDLE中运行良好。但是当我把它应用到网站上时,它对我的旅游日期下拉列表不起作用。很明显我做错了什么。请看这里:请看-真的吗?你希望我能准确地找到你遇到的问题吗?对不起,我以为你可以放大下拉列表的代码。我会在JSFIDDLE中发布一些代码,但我看不到任何具体问题。但是你没有告诉我你遇到了什么问题-只是它不起作用问题是当用户确实选择了巡演日期时,警报中不会给出任何警告。请看这里的JS小提琴:谢谢!您的代码在JSFIDLE中运行良好。但是当我把它应用到网站上时,它对我的旅游日期下拉列表不起作用。很明显我做错了什么。请看这里:请看-真的吗?你希望我能准确地找到你遇到的问题吗?对不起,我以为你可以放大下拉列表的代码。我会在JSFIDDLE中发布一些代码,但我看不到任何具体问题。但是你没有告诉我你遇到了什么问题-只是它不起作用问题是当用户确实选择了巡演日期时,警报中不会给出任何警告。请看这里的JS小提琴: