jquery - 根据从 jquery 的下拉菜单中单击的内容更改值
问题描述
我有一个下拉菜单,其中包含我的 C# 模型中的列表。现在我想根据我从菜单中选择的内容更改一个值。
$(document).ready(function() {
$("#Bereich").val('@Model.Bereich').change('click', function() {
$("select option:selected").each(function() {
if ($(this) == "Something") {
$('#kst').val(123);
}
if ($(this) == "Somethingelse") {
$('#kst').val(345);
}
});
}).change();
});
我对 jQuery 很陌生,所以我不确定如何从列表中获取元素。
解决方案
您的代码中有两个主要问题。首先change('click', fn)
不是有效的语法。鉴于我们正在处理一个select
元素,我假设您正在尝试创建一个change
事件处理程序,因此代码应该是on('change', fn)
。
其次,$(this)
会给你一个jQuery对象。这永远不会等于字符串值,因此条件永远不会命中。我假设您正在尝试测试要用val()
于此的选定项目的值。
请注意,在下面的示例中,我存储#kst
在一个 jQuery 对象中并在需要保存访问 DOM 的地方重复引用它,这是 JS 中大部分性能损失的地方。另请注意,您可以val()
直接从select
元素访问 - 您不需要检索其中的option:selected
元素。
jQuery($ => {
let $kst = $('#kst');
$("#Bereich").val('@Model.Bereich').on('change', function() {
$("select").each(function() {
let value = $(this).val();
if (value === "Something") {
$kst.val(123);
}
if (value === "Somethingelse") {
$kst.val(345);
}
});
}).change();
});
推荐阅读
- javascript - 当确定有实现时获得 HTTP 501 Not Implemented?
- c# - 在 .NET Web API 中重用与 Dapper 的数据库连接
- node.js - Node Express Post 500(内部服务器错误)jquery-3.4.1.min.js
- python - 基于输入执行查找的问题
- html - 如果需要,使用滚动条引导列全高
- vagrant - 未检测到 stdlib 模块
- mautic - 我在哪里可以访问我的 Mautic 活动内容(文件路径)
- python - 在 pycharm 中对 XSLT 文件进行单元测试
- list - 在它的列表中查找缺席字典
- r - R函数不遍历列但重复第一行结果