javascript - 如何在 MVC 视图中通过 JavaScript 从枚举中获取文本
问题描述
创建枚举类并从该枚举列表绑定 MVC 视图中的下拉列表。
现在,每当我从下拉列表中选择枚举列表时,我都想要 JavaScript 中的文本并存储在变量中。
但是,当我通过document.getelementbyid或name执行此操作时,它会显示undefined或value null
那么,您能回答我如何通过 JavaScript 获取枚举名称并将其存储在变量中吗?
这是我的代码,
枚举类
namespace Nop.Core.Domain.FreeLancer
{
public enum DocumentList
{
ElectricityBill = 0,
RentAgreement = 1,
Logo = 2,
PanCard = 3,
AadharCard = 4,
BankCancelCheque = 5,
OldItReturnFile = 6,
InterestCertyOfFD = 7,
AgricultureBill = 8,
ShortTermCapitalGainProfitLossAmount = 9
}
}
这是控制器
public virtual IActionResult Edit()
{
var model = customer.ToModel();
// AddDocumentListViaEnum
var documentList = Enum.GetValues(typeof(DocumentList)).Cast<DocumentList>();
foreach (var document in documentList)
model.AddCustomerDocumentModel.AvailableDocuments.Add(new SelectListItem { Text = document.ToString(), Value = ((int)document).ToString() });
return View(model);
}
这是绑定下拉列表中的枚举项的视图
<select id="availabledocument" name="availabledocument"
class="form-control"
asp-items="@Model.AddCustomerDocumentModel.AvailableDocuments" onchange="OtherDocument(this.value);">
<option value="">Select</option>
</select>
现在,到目前为止一切都很好。现在我想从 JavaScript 中获取名称并存储在变量中。
这是该视图代码,
function OtherDocument(documentValue) {
var storeValue = document.getElementById("availabledocument").value;
var storeValue1 = document.getElementByName("availabledocument").value;
}
这两行代码都不起作用。
解决方案
正如克里斯评论的那样,值已经传递到函数中,所以不需要再次抓取它,如果你想通过选择器抓取值,你可以编写以下代码
function OtherDocument() {
var elm= document.getElementById("availabledocument");
var selectedValue = elm.options[elm.selectedIndex].value;
}
如果您使用 jQuery,那么您可以编写以下代码:
$("#availabledocument option:selected").val();
推荐阅读
- javascript - 为什么缓存文件具有高 TTFB
- php - 在 php url 斜线之后我得到了一个不同的页面
- sql - MERGE DELETE 仅基于父 id
- serilog - Serilog 我缺少什么命名空间?
- javascript - 如何修复此 Jest 错误:“组件遇到声明异常”?
- assembly - 为什么不打印汇编中的数字
- java - R 为什么我不能使用 xlsx 库?
- php - 如何在 Woocommerce 中获取变体运输类
- java - 如果有多个子标签,则前面的兄弟姐妹不起作用
- ios - 在 iOS 上查询数据库时,如何正确保持 TAniIndi 和 ListView 响应线程?