C# onBegin函数用于取消屏蔽表单字段,但该值仍使用掩码发送给控制器
我有一个使用Ajax发送的表单 有一个带掩码的字段,它的值如下所示:(此字段以数字方式添加) 我有一个beforeSend回调函数,可以移除掩码 在发送表单之前,我可以看到该字段:C# onBegin函数用于取消屏蔽表单字段,但该值仍使用掩码发送给控制器,c#,asp.net,.net,asp.net-mvc,C#,Asp.net,.net,Asp.net Mvc,我有一个使用Ajax发送的表单 有一个带掩码的字段,它的值如下所示:(此字段以数字方式添加) 我有一个beforeSend回调函数,可以移除掩码 在发送表单之前,我可以看到该字段: 01111111111 但是在我的控制器中,我得到的值就好像我没有移除遮罩一样。不明白为什么 表格 @using (Ajax.BeginForm("opImportFile", "Operacao", new AjaxOptions { HttpMethod = "POST", OnBegin = "validat
01111111111
但是在我的控制器中,我得到的值就好像我没有移除遮罩一样。不明白为什么
表格
@using (Ajax.BeginForm("opImportFile", "Operacao", new AjaxOptions { HttpMethod = "POST", OnBegin = "validation", OnSuccess = "LimparCampos", OnFailure = "LimparCampos" }, new { id = "formUpdStoringSettings" }))
{
<fieldset>
<legend>Importação - Arquivo</legend>
<!-- <h2><a href="#" id="AddAbsPath" class="editBtn" onclick="addArmazenamento();" style="font-size:12px; color:#E17009 !important;"> Adicionar</a></h2> -->
<table id="tblArmazenamento">
<tr id="@element">
<td>@Html.Hidden("idCaminhoRepositorio_" + element)
@Html.TextBox("caminhorepositorio_" + element, "", new { @class = "validate[required] smallField limpar", disabled = "disabled" })
@Html.Hidden("caminhoRepositorio_" + element, "", new { @class = "validate[required] smallField limpar"})</td>
<td><a href="#" id="editPath" class="editBtn" onclick="FileTree()"> Localizar</a>
<a href="#" id="RemAbsPath_@element" class="editBtn" onclick="removeArmazenamento(@element);" style="color:red !important;"> Remover</a>
</td>
</tr>
<tr><td colspan="2">@Html.DropDownListFor(m => m.tipo, new SelectList(Model.tipo, "idTipo", "nomeTipo"), "Escolha um Tipo", new { @class = "validate[required] smallField" })</td></tr>
<tr><td colspan="2"><br /></td></tr>
</table><br />
<input type="submit" value="Importar" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only button-link" />
</fieldset>
}
控制器
string[] indicesValues = form["group"].Split(','); //Here I am getting a masked value
您正在根据“mask”类选择移除掩码,但我没有看到该类的任何控件。您的输入是否缺少一个类?我相信javascript的最后一行也应该是.val而不是.text。您正在根据“mask”类选择删除掩码,但我没有看到该类的任何控件。您的输入是否缺少一个类?我相信最后一行javascript应该是.val而不是.text。这里发布了一个类似的问题:
本质上,您在表单上修改的值不是浏览器已序列化的值。此处发布了一个类似问题: 实际上,您在表单上修改的值不是浏览器已序列化的值
function validation() {
$('.mask').each(function (index) {
$(this).val($(this).val().replace('(', ''));
$(this).val($(this).val().replace(')', ''));
$(this).val($(this).val().replace(/-/g, ''));
$(this).val($(this).val().replace(/ /g, ''));
$(this).text($(this).val()); //Here I get an unmaked value
});
}
string[] indicesValues = form["group"].Split(','); //Here I am getting a masked value