因此,我正在动态制作其中具有单选按钮的表行。我希望用户能够选择一个单选按钮,这就是添加到模型中的信息。
HTML
好,所以我有一个表,表完全是空的。当用户搜索客户时,表格将添加行(单击搜索按钮时)。但是首先,这就是我们所拥有的:
<div class="row border mt-3 p-3" id="policyInfo">
<div class="input-group mb-3 ">
<h3 class="col-lg-12 blue redUnderline">Policy Information</h3>
</div>
<TABLE class="table mt-3" id="policyTable">
<thead>
<tr>
<th scope="col">@Html.LabelFor(m => m.PolicyTypes)</th>
<th scope="col">@Html.LabelFor(m => m.policyID)</th>
<th scope="col">@Html.LabelFor(m => m.PolicyExpirationDate)</th>
<th scope="col"> @Html.LabelFor(m => m.PolicyStatus)</th>
<th scope="col"> @Html.LabelFor(m => m.Agency)</th>
<th scope="col"> @Html.LabelFor(m => m.AgencyCert)</th>
</tr>
</thead>
<TR></TR>
</TABLE>
</div>
它看起来像这样:
JQUERY / AJAX
我的JQuery / Ajax / Controller与与数据库进行对话的控制器进行对话,并基于名称/电子邮件(前提是它返回数据)并要求我的JavaScript函数创建新行。
$('#search').click(function () {
$.ajax({
type: "Post",
url: "/Home/PolicyID_get",
dataType: 'json',
data: {
Firstname: $('#firstname').val(),
Lastname: $('#lastname').val(),
Email: $('#email').val(),
},
success: function (data) {
$.each(data, function (i, result) {
addRowsPolicyHolder("policyTable", result.Policyid, result.PolicyStatus, result.PolicyExpirationDate, result.Agencycode, null);
});
}
});
});
JavaScript 我的JS检查是否存在行ID号(例如是否存在第一行等),然后根据该行号创建新的行号。下面的代码仅显示如何制作单选按钮和策略ID,但表行的其余部分在我的代码中。
function addRowsPolicyHolder(tableId, policyId, policyStatus, policyExp, certifyingAgency, agencyCertId) {
var iteration = 0;
var stop = false;
while (stop == false) {
var elementChk = "[" + iteration + "].policyID";
var checkId = document.getElementById(elementChk);
if (checkId) {
stop = false;
} else {
var table = document.getElementById(tableId);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var cell0 = row.insertCell(0);
var element0 = document.createElement("input");
var element0Label = document.createElement("label");
var element0Span = document.createElement("span");
element0Label.className = "radioContainer";
element0Span.className = "checkmark";
element0.type = "radio";
element0.id = "[" + iteration + "].chkbox";
element0.name = "policyCheckBox";
element0Label.appendChild(element0);
element0Label.appendChild(element0Span);
cell0.appendChild(element0Label);
var cell1 = row.insertCell(1);
var element1 = document.createElement("input");
element1.type = "text";
element1.id = "[" + iteration + "].policyID";
element1.name = "[" + iteration + "].policyID";
element1.className = "form-control";
element1.disabled = true;
element1.value = policyId;
cell1.appendChild(element1);
但是,我们设置了控制器来返回客户列表,而不仅仅是返回第一个结果,因为客户可以有多个策略。如果返回多个策略,将返回多行。另外,假设某人与配偶一起来,我们搜索了他们的信息,但他们也想看看自己的配偶是否有更好的政策。我们可以搜索多个人,并且将显示多个策略。
所有这些都正常。我只是想不通如何仅将已检查的行发送到模型。
我找到了一些使用razor语法的解决方案,但是由于我是动态创建行的,因此无法正常工作。在此先感谢!