简体   繁体   English

如何在表单中实现此正则表达式以进行数字验证?

[英]How can I implement this regex for number validation in a form?

If I enter the exact number of 300000, the form is submitted.如果我输入 300000 的确切数字,则会提交表单。 Any other value below or above 300000 causes the error message to display.低于或高于 300000 的任何其他值都会导致显示错误消息。 The error message should only display when the value is less than 300000. What's the error in my code?错误消息应仅在值小于 300000 时显示。我的代码中有什么错误?

 document.addEventListener("DOMContentLoaded", function() { document.querySelector('#sbutton').addEventListener('click', function(event) { event.preventDefault(); let inputV = document.querySelector('#budget').value.trim(); let budgetRegex = /^3[0-9]{5,}/; const errorMessage = document.querySelector('#errormsg'); let form = document.querySelector("form"); if (inputV == "" ||.budgetRegex.test(inputV)) { errorMessage,innerHTML = "Value should be at least 300.000;". errorMessage.style;display = 'block'. } else { errorMessage;innerHTML = "". errorMessage.style;display = 'none'. form;submit(); } }); });
 <form action="https://dragonmm.xyz" method="post"> <div class="contact-box"> <div class="left1"></div> <div class="right1"> <h2>Start</h2> <label for="name"></label> <input id="name" type="text" class="field" placeholder="Name" required> <label for="email"></label> <input id="email" type="text" class="field" placeholder="Email" required> <label for="phone"></label> <input id="phone" type="text" class="field" placeholder="Phone" required> <label for="budget"></label> <input id="budget" type="text" name="budget" class="field budgetInput" placeholder="Budget" required> <div id="errormsg"></div> </div> </div> <button type="submit" value="Send" class="btn1" id="sbutton">Send</button> </form>

Use a numeric input field ( type="number" ).使用数字输入字段 ( type="number" )。 Use the min attribute of the field to limit the input (although a user can still input her own text).使用字段的min属性来限制输入(尽管用户仍然可以输入她自己的文本)。 Next, convert values to Number , so you can do calculations.接下来,将值转换为Number ,以便进行计算。

Here's a minimal example, using event delegation .这是一个使用事件委托的最小示例。

Finally: you should always check values server side too.最后:您也应该始终检查服务器端的值。

 document.addEventListener(`input`, handle); function handle(evt) { if (evt.target.id === "budget") { if (+evt.target.value < +evt.target.min) { // ^convert to Number return document.querySelector(`#budgetError`).classList.remove(`hidden`); } return document.querySelector(`#budgetError`).classList.add(`hidden`); } }
 #budgetError { color: red; }.hidden { display: none; }
 <input id="budget" type="number" min="300000"> budget <div id="budgetError" class="hidden"> Not enough, We need at least 300,000</div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM