javascript - 小于提交后验证不起作用

标签 javascript jquery forms validation

我有一个带有验证规则 input3 值不能超过 input2 值的表单,在提交按钮之前我已经成功,但是当我提交按钮时,当我在 input3 上输入值时出现问题,input3 中输入的任何内容都会显示消息错误。

input2 值取决于左侧的选择列表。

我使用 fromvalidation 插件来做到这一点。

这是我的表单代码

$('#tambah').formValidation({
  icon: {
    valid: 'glyphicon glyphicon-ok',
    invalid: 'glyphicon glyphicon-remove',
    validating: 'glyphicon glyphicon-refresh'
  },
  fields: {
    qty: {
      row: '.col-md-3',
      validators: {
        notEmpty: {
          message: 'Jumlah Barang Tidak Boleh Kosong'
        },
        lessThan: {
          value: $("#kolombayangan").val(),
          inclusive: true,
          message: 'Stok Tidak Tersedia'
        },
        integer: {
          message: 'Harus Berupa Angka'
        }
      }
    }
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form name="tambah" id="tambah" role="form" action="aksi_tambahdetailpermintaan.php" method="POST">
<input type="hidden" name="kolombayangan" id="kolombayangan" >
  <div class="form-row">
    <input class="form-control" name="faktur" id="faktur" type="hidden" value="<?php echo $datapermintaan['no_suratjalan']; ?>">
    <div class="form-group">
      <div class="col-md-5">
        <select name="kodebarang" id="kodebarang" class="form-control">
          <option value=""></option>
          <?php $barang=m ysql_query( "SELECT tbarang.id_barang, tbarang.detail_barang, tpersediaan.saldo FROM tbarang 
							INNER JOIN tpersediaan ON tbarang.id_barang=tpersediaan.id_barang WHERE tpersediaan.saldo !='0' ORDER BY tbarang.id_barang ASC"); while ($databarang=m ysql_fetch_assoc($barang)) { ?>
          <option value="<?php echo $databarang['id_barang']?>">
            <?php echo $databarang[ 'detail_barang']?>
          </option>
          <?php } ?>
        </select>
      </div>
      <div class="form-group">
        <div class="col-md-2">
          <input type="text" name="jumlah" id="jumlah" class="input-sm form-control" readonly>
        </div>
      </div>
      <div class="form-group inputjumlah">
        <div class="col-md-3">
          <input type="text" name="qty" id="qty" class="input-sm form-control">
        </div>
      </div>
    </div>
    <div class="text-right">
      <button type="submit" class="btn btn-sm btn-primary" id="tambah">Tambah</button>
    </div>
    <br>
  </div>
</form>

抱歉我的英语不好。
enter image description here

最佳答案

您需要为 lessThan.value 属性指定一个数字,但 .val() 返回一个字符串。

要解决此问题,请将 val() 的返回值转换为数字。您可以使用 unary + operator 来完成此操作:

    lessThan: {
      value: +$("#kolombayangan").val(),
      inclusive: true,
      message: 'Stok Tidak Tersedia'
    },

其次,您有两个具有相同 id 属性值 (tambah) 的元素。 HTML 中不允许这样做。除非得到纠正,否则某些事情可能无法按预期工作。

关于javascript - 小于提交后验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37406897/

相关文章:

javascript - 如何在 dojo 中获取 FilteringSelect <select> 的 "value"?

jquery - 表单提交时的沙漏

javascript - 带条件循环遍历数组

javascript - 中文和日文字符的正则表达式单词匹配

javascript - 为什么 typeof array[0] == 'undefined' 不起作用?

javascript - Wordpress 上使用 Javascript 的条件链接

javascript - VueJS 中的 v-html 不起作用(空页面)

javascript - 使用 laravel 和 ajax 实时搜索后,我的按钮中的 Data-id 属性未显示值

javascript - 如何使用按钮在 div 之间切换?

JavaScript 自动 POST 和 NAME