0

我有一个使用 jQuery 的插件,它修改输入以在输入模糊时为其提供格式掩码,但是我不想在提交表单时通过格式化值发送。

有没有办法可以拦截父表单提交事件,调整元素的值以删除掩码,然后继续提交,而不必为每个使用插件输入的表单定义它?

当然,另一种选择是使用隐藏输入并将原始值存储在其中,并使用未命名的输入来显示掩码,但如果可以的话,我想避免额外的标记(另外这将是一个方便的技巧!)

4

2 回答 2

1
$("#formid").submit(function(e){


    e.preventDefault(); //prevent the form from submitting

    var formatted_string = $("#formatted_input"); // get the formatted string you want to unformat

    var unformatted_string = formatted_string.replace(/regularexpression or string to be replaced/,'replacement string');  // use .replace() function to find and replace either a string or regular expression to undo your previous formatting

    $("#formatted_input").val(unformatted_string);       // set the input value as the new unformatted value

    $(this).submit(); //submit this form

});
于 2012-11-09T13:33:38.150 回答
0

您可以使用onsubmit表单的事件。
此事件拦截表单提交事件,让您操作数据,甚至决定是否提交表单(通过其返回码)。

一个常见的用例是验证:

<script type="text/javascript">
function ValidateInput() {
  //validate something here
  return true; //true will submit the form, false will stop the submission here
}
</script>

<form action="yourfile.html" onsubmit="return ValidateInput();">
    ...
</form>

您可以轻松地调整它来操作您的数据。

于 2012-11-09T11:48:46.997 回答