我试图从下拉列表中选择不同的值,并根据下拉列表中新选择的文本检查逻辑,并比较文本框中输入的文本。如果选择的下拉文本和文本框值失败了逻辑,我想恢复到原来显示在下拉框中的文本。
对于示例:在我的下拉框中,我有“有效”、“无效”、"PCR“、"PCR”等值,下拉列表已经显示了“有效”。如果用户将值从“有效”更改为"PCR“,而将第二个文本框值更改为负数,则我将通过引导框向用户抛出一个错误,说明textbox值应该是正数。
但是,在用户更改为"PCR“之前,我需要将显示在下拉列表中的原始值更改为”有效“。我的代码没有按要求工作。它在所附下拉列表中放置一个空的结果。
下面的代码:用于创建下拉模型的MVC视图页面:
@Html.DropDownListFor(model => model.FundingStatusId, new SelectList(ViewBag.FundingStatusDdl, "FundingStatusId", "FundingStatusName"), "Select Fund Status", htmlAttributes: new { @class = "form-control rtscustomtextboxright", @id = "fundingstatus" })
$(function () {
var fundingStat = $("#fundingstatus option:selected").text();
$("#fundingstatus").change(function () {
if ($("#fundingstatus option:selected").text() == 'PCR IN') {
// debugger
if (parseFloat($('#additionalFunds').val(), 10) > 0) {
bootbox.alert({
title: "ERROR - Please fix this",
size: "lg",
message: "<br><br><br>Additional Funds must be a NEGATIVE $ amount"
})
// return false;
$("#fundingstatus").val(fundingStat);
}
}
})
});
发布于 2021-01-14 22:10:30
我相信您使用.val()方法是错误的。
var fundingStat = $("#fundingstatus option:selected").text();
$("#fundingstatus").val(fundingStat); // you set the val for the option's text and not its value.
您的问题中没有提到下拉列表的代码,所以我不能编写修复程序,但是请查看以下解释:
如果我们有以下下拉列表:
<div class="test">
<select>
<option value="a">First Choice</option>
<option value="b">Second Choice</option>
<option value="c">Third Choice</option>
</select>
</div>
为了设置选中的选项,我们应该使用.val()和值,而不是text()。
$(".text select").val("b"); // will select the "Second Choice"
而非
$(".text select").val("Second Choice");
https://stackoverflow.com/questions/65727537
复制相似问题