javascript捕获一个输入

javascript捕获一个输入,javascript,c#,asp.net-mvc,Javascript,C#,Asp.net Mvc,我正在尝试捕获此选择的更改: @if (!Model.Id.Equals(null)) { @Html.DropDownListFor(m => m.Modificar.IdClase, new SelectList(Model.ListaClases, "IdClase", "Clase", Model.Modificar.IdClase), new { @class = "input form-control input-lg", @r

我正在尝试捕获此选择的更改:

 @if (!Model.Id.Equals(null))
            {
            @Html.DropDownListFor(m => m.Modificar.IdClase, new SelectList(Model.ListaClases, "IdClase", "Clase", Model.Modificar.IdClase), new { @class = "input form-control input-lg", @required = "required", @style = "height: 40px; font-size:16px" })
            }
            else
            {
            @Html.DropDownListFor(m => m.ListaClases, new SelectList(Model.ListaClases, "IdClase", "Clase"), new { @class = "input form-control input-lg", @required = "required", @style = "height: 40px; font-size:16px" })
            }
使用变量使其处于非活动状态

var clases = $('#Id').val() != "" ? $('#Modificar_IdClase') : $('#ListaClases');
我在一个
console.log(clases)
中看到,修改的IdClase被捕获为输入,而不是选择。为什么会发生这种情况,我该如何解决

console.log(类)

编辑1

在Chrome开发工具中编写的html代码是:

修改内容:

<select class="input form-control input-lg" id="Modificar_IdClase" name="Modificar.IdClase" required="required" style="height: 40px; font-size:16px">
<option selected="selected" value="1">Articulo principal</option>
<option value="2">Articulo auxiliar</option>
</select>

关节主
辅助关节
Lista分类:

<select class="input form-control input-lg" id="ListaClases" name="ListaClases" required="required" style="height: 40px; font-size:16px">
<option value="1">Articulo principal</option>
<option value="2">Articulo auxiliar</option>
</select>

关节主
辅助关节
问题在于
下拉列表for
一个是获取数据并获取
输入
而不是
选择

将代码更改为

var clases = $('#Id').val() != "" ? $('#Modificar_IdClase').val() : $('#ListaClases').val();
因为
$('#Modificar_IdClase')
返回DOM对象,如果您想为标记获取类,可以使用
$('#Modificar_IdClase').attr('class')

$(文档).ready(函数(){
log($('#Modificar_IdClase').val());
console.log($('Modificar_IdClase').attr('class'));
})

测验

JavaScript与之交互的实际HTML是什么?你在页面上的任何地方都有相同ID的其他元素吗?@David有两个选项,一个是修改,另一个是创建一个新的,只能及时获取一个,这是一个局部视图调试的目标不是模糊地描述你希望你的程序完成什么,而是检查逻辑正在做什么的技术运行时细节。在本例中,由于JavaScript与HTML交互并产生意外结果,因此您需要检查HTML并查看它是否符合您的预期。您的浏览器提供了调试工具来帮助您完成此操作。在浏览器中按F12。看看DOM资源管理器,在控制台中测试JavaScript命令,等等,重复。。。这些元素的实际HTML是什么?@David im使用asp.net是一个cshtml页面,选择的代码是
DropDownListFor
,我可以使用转换代码的devtool进行编辑,但两者都是选择的。Avascript不了解服务器端代码,也不了解服务器端代码。在这一点上,您只是在做出假设并坚持您的代码应该工作。但是,由于您的代码没有按预期的方式工作,现在是停止假设并开始验证和调试的好时机。很多事情都可能出错,甚至可能与问题中显示的代码无关。但在你真正开始调试之前,没有人能做什么。