我正在工作的一个网站http://www.michaelgworkman.com是我创建的一个网站,目的是帮助我找到一份工作,并总体上帮助我的职业。
In一直在尝试为此网站上的联系表单添加轻量级的JQuery表单验证,该表单托管在Microsoft Azure云平台上,并且出现问题。在未选择选项的情况下,在表单中引用INTEREST的下拉列表总是返回FALSE表单,而当我在下拉列表中选择一个项目时,也会返回FALSE。表单如下所示:
我在窗体的Razor视图.cshtml文件中的表单中有此文件:
这是从表单生成的HTML:
当我提交表单时未在INTEREST下拉列表中选择感兴趣的内容时,它会正确地从文件中的JQuery返回false。
当我选择兴趣后提交表单时,JQuery仍然说下拉列表中没有选择选项,这是选择值后表单的外观:
这是即使在INTEREST下拉列表中选择一个值之后,始终会返回false的JQuery代码。
我想知道如何解决这个问题,到目前为止它已经使我难堪了一个小时。
答案 0 :(得分:1)
好吧,我在这里发现了问题,我在表单中使用了错误的ID作为下拉列表,我试图使用$(“#ContractCategory”),但这不是正确的ID,Razor代码是根据此ASP.NET MVC Web应用程序中实体框架使用的数据库表的名称,自动将ID创建为id =“ ContractCategories_ID”。简单修复,我花了大约一个小时的时间对此感到惊讶,现在该表格可以正常工作了。
答案 1 :(得分:0)
一方面,您要显示给我们的标记中没有包含id="ContactCategory"
的元素,因此,如果该选择器没有找到任何内容,那么false
可能确实是正确的结果。试试:
alert($('#ContactCategories_ID option').is(':selected'));
但是即使那样,由于该选择器找到了多个元素,所以您所做的语义仍然没有多大意义,并可能返回意外结果。无需查找选定的选项,只需检查form元素本身的值即可。通常,要获取价值,您可以执行以下操作:
let category = $('#ContactCategories_ID').val();
并检查该值:
alert(category === '');