Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果不包含下划线,则不要处理_Javascript_Jquery_Forms - Fatal编程技术网

Javascript 如果不包含下划线,则不要处理

Javascript 如果不包含下划线,则不要处理,javascript,jquery,forms,Javascript,Jquery,Forms,表格: 演示- 有些用户提交的ID中只有数字,例如981734844。 一些用户提交的ID带有下划线,但不带引号,例如28371366_243322 我想做的是不允许提交仅包含数字的ID(例如89172318)的用户处理表单操作 换言之: 82174363278423:不允许处理表单操作 21489724893249_2918423:允许处理表单操作 有可能吗 提前谢谢。是的,你可以这样做。有许多解决方案。例如,您可以使用下划线作为拆分分隔符将输入字符串拆分为一个数组,如果您的数组有两个条目,您

表格:

演示-

有些用户提交的ID中只有数字,例如981734844。 一些用户提交的ID带有下划线,但不带引号,例如28371366_243322

我想做的是不允许提交仅包含数字的ID(例如89172318)的用户处理表单操作

换言之:

82174363278423:不允许处理表单操作

21489724893249_2918423:允许处理表单操作

有可能吗


提前谢谢。

是的,你可以这样做。有许多解决方案。例如,您可以使用下划线作为拆分分隔符将输入字符串拆分为一个数组,如果您的数组有两个条目,您就知道只有一个下划线。e、 g.类似于此未经测试的代码片段的示例-您还需要为数组的每个部分添加数字检查,因此如果使用此方法,您可能希望将拆分分配给变量:

<form action="goto.php" method="post" name="myform" id="myform" onsubmit="return formSubmit(this);" class="form-wrapper cf">
  <input name="statusid" autocomplete="off" id="statusid" placeholder="Enter ID Here" type="text">
  <input name="submit_btn" class="submit" id="submit_btn" value="" placeholder="submit" >
</form>

您需要使用java脚本验证,因此可以使用以下代码:

$('form').submit(function(event)
{
    if (myinputvar.split('_').length ! = 2)
    {
        event.preventDefault();
        return false;
    }
    // do the rest of your submission here
});
试试这个

  if ( String.indexOf('_') != -1 ) {
        // your form processing code..
  }

演示-

以上两个答案都可以,只需去掉Neil的jquery即可。 另一个选择是


不幸的是,由于某种原因,我无法将其用于JSFIDLE,它告诉我formSubmit不是一个函数,但显然是一个函数。无论哪种方式,javascript都有一个字符串“搜索”方法

您可以在表单的onsubmit中执行任何表单验证

HTML


字母和其他字符/符号呢?如果您提供一个白名单,用户不需要提交单词或字母,表单只接受数字,这可能是最好的。但是我希望表单只接受介于下划线之间的数字,例如2894723489327_384323。仅供参考,您的提交按钮应为type=submitHi,我是否可以显示一条警告,说明您需要输入带有下划线的ID。对于提交后输入中没有下划线的用户?ThanksBetter在状态id输入下或表单上方内联显示。尽量避免弹出不专业的警报。我可以为输入中没有下划线的用户获取内联代码吗?很抱歉,我不擅长HTML或JS。@user3213765你知道这将接受类似abc_123甚至只是_,对吗?@user3213765我有疑问,你想允许还是不允许?谢谢你的帮助,我真的很感激!它不允许下划线作为第一个字符。@FizerKhan,为什么要这样做?OP特别需要数字+下划线+数字HTMLFormElement对象的表单变量没有默认方法。
function formSubmit(form) {
    // create a regex to test for the numbers + underscore + numbers pattern
    var rx = /^\d+_\d+$/,
        test = rx.test(form.statusid.value);

    test || alert('You need to enter an ID with underscore in it.');
    return test;
}
function formSubmit(form){
   var statusid=document.getElementById("statusid");
    if(statusid.value.search("_")===-1){
        alert('ID must have an underscore "_".');
    }
};
<form name="myform" id="myform" onsubmit="return formSubmit(this);" class="form-wrapper cf" action="goto.php" method="post">
  <input name="statusid" autocomplete="off" id="statusid" placeholder="Enter ID Here" type="text">
  <input type="submit" name="submit_btn" class="submit" id="submit_btn" value="" placeholder="submit" >
</form>
// Do validation of form
function formSubmit(formObj) {
    // Only allowable character is numeric or underscore 
    if (!/^[_0-9]*$/.test(formObj.statusid.value)) {
        return false;
    }
    return true;
}