【发布时间】:2020-01-14 05:40:20
【问题描述】:
我有一个备注 div If user choose option of Other then user need to fill box for reasons.
这是网页内(.cshtml)
@model MNepalWeb.Models.CustomerSRInfo
@{
List<SelectListItem> Remarks = new List<SelectListItem>();
Remarks.Add(new SelectListItem { Text = "Your name does not match", Value = "Your name does not match" });
Remarks.Add(new SelectListItem { Text = "Your date of birth does not match", Value = "Your date of birth does not match" });
Remarks.Add(new SelectListItem { Text = "Others", Value = "Others" });
}
//供备注
<div class="form-group">
<label class="control-label col-md-2">Reject Remarks <b style="color:red;">*</b></label>
<div class="col-md-5">
@Html.DropDownListFor(model => model.Remarks, new SelectList(Remarks, "Value", "Text"), new { @class = "form-control", @style = "width: 100%;", @id = "txtRemarks" })
<br />
<textarea name="OthersRemarks" id="txtOthersRemarks" placeholder="Please Insert Remarks to Reject, maxlength- 200" maxlength="200" rows="4" cols="50" style=" display:none; min-height:50px;min-width:200px;max-height:100px;max-width:422px;" class="form-control" @*oninput="checkValidation()"*@></textarea>
<b style="color:red">*</b><b> Note Please fill out remarks before rejecting </b>
<br />
</div>
</div>
</div>
改变价值的JS
if ($.trim($('#RejectRemarks select').val()) == "" || $.trim($('#RejectRemarks select').val()) == "Others") {
var TextBoxRemarks = $("#txtOthersRemarks").val();
if ($.trim($('#RejectRemarks select').val()) == "Others" && TextBoxRemarks.trim() == "") {
document.getElementById("txtOthersRemarks").setCustomValidity("Other Reject Remarks is required");
$('#txtOthersRemarks select').focus();
return;
}
else if ($.trim($('#RejectRemarks select').val()) == "Others" && TextBoxRemarks.trim() != "") {
var txtRemarks = document.getElementById("txtRemarks");
//txtRemarks.value = $("#txtOthersRemarks").val();
txtRemarks.val = TextBoxRemarks;
//txtRemarks.value = TextBoxRemarks;
document.getElementById("txtOthersRemarks").setCustomValidity("");
return;
}
else {
document.getElementById("txtRemarks").setCustomValidity("Reject Remarks is required");
$('#RejectRemarks select').focus();
return;
}
}
else {
document.getElementById("txtRemarks").setCustomValidity("");
}
但是当我实现这个 js 时,它只会将值更改为复选框,而不是向控制器发送空值。
public ActionResult BankLinkVerify(UserInfo model, string btnApprove, string Remarks)
我正在尝试找出问题所在,但无法对此进行分析。我需要用户在文本框中输入的任何内容作为备注值。(默认为其他,但当我这样做时,js 下拉值对控制器变为空)。 谢谢!
【问题讨论】:
-
如何将表单数据发送到 Controller 方法?您使用的是 AJAX 还是默认表单绑定?
-
@RahulSharma。先生,我使用表单绑定
-
@RahulSharma.. using (Html.BeginForm("BankLinkVerify", "Customer", FormMethod.Post, new { id = "ViewBankLinkVerifyDetail", class= "ViewBankLinkVerifyDetail" }))
-
你可以使用 FormCollection 来获取你的值:
string Remarks= Request.Form["Remarks"].ToString(); -
@RahulSharma。先生,它给出的值是“其他”,而我需要用户在文本框中输入的内容作为备注。假设用户在下拉列表中选择其他并输入“图像与公民身份不匹配”之类的内容。备注值应该更改为用户类型,而我只得到“其他”作为值。我试图改变价值,但只得到空值。
标签: javascript c# jquery asp.net