Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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 - Fatal编程技术网

Javascript 基于另一个文本输入限制文本输入

Javascript 基于另一个文本输入限制文本输入,javascript,Javascript,这看起来很简单,但我找不到一个好办法 我正在做一个研究栏,它允许用户搜索一些关于price mini和price maxi的内容 因此: 我有两种文本输入类型(当然是html格式)“price\u mini?”和“price\u maxi?”。 “Price\u mini”不能大于“Price\u maxi”。 如何限制用户输入的“price\u mini”值,以便if不允许用户输入超过“price\u maxi”变量的输入值,并且如果mini值大于price\u maxi,则在保存(搜索)时显

这看起来很简单,但我找不到一个好办法

我正在做一个研究栏,它允许用户搜索一些关于price mini和price maxi的内容

因此: 我有两种文本输入类型(当然是html格式)“price\u mini?”和“price\u maxi?”。 “Price\u mini”不能大于“Price\u maxi”。 如何限制用户输入的“price\u mini”值,以便if不允许用户输入超过“price\u maxi”变量的输入值,并且如果mini值大于price\u maxi,则在保存(搜索)时显示错误。

想象一下这个html

 <input id="min" type="text">
 <input id="max" type="text">

让我们假设这是您的HTML

<input id="min" type="text">
<input id="max" type="text">

当它们具有值
(最小值和最大值)
时,应进行比较。如果您注意到
min
更高,您可以向用户发出警报,或将其自动更改为最低或最高

$('.calc_input').change(函数(){
var min=$('#min').val();
var max=$('#max').val();
如果((最小值和最大值)和最小值>最大值){
警报(“这不可能!”);
//$('#min').val()=max;
//$('#max').val()=min;
}
});

最小值:


Max:
类似的东西应该可以工作,我无法让JSFIDLE处理表单来向您展示一个好的示例,而且我现在在普通javascript中做的不多,所以如果有一两个小错误,请原谅

HTML


您是在用户输入输入时实时保存到数据库中,还是只是显示一个错误,说明在保存之前价格必须更低?事实上,我正在搜索一个网站。如果price\u mini大于price\u maxi,用户将无法提交,因此我希望在发送前显示一个错误。确定,如果您编辑您的问题,说明如果mini大于price\u maxi,您希望在保存(搜索)时显示一个错误,您将获得更好的答案。您可以在键入错误时显示错误,也可以在提交时显示错误,但如果存在错误,则必须阻止任何一种提交/保存方式。到目前为止,人们都在猜测你想做什么。谢谢你的建议,我尽了最大的努力,但我的英语不是很好^^不用担心-如果你愿意,我可以为你编辑。@Anthony只是想指出,在这个脚本中有一些假设,如果数字更大,你希望发生什么。但是,这是一个有效的答案。OP可以在
if()中随心所欲地制作
statement没有提到它是无效的-它只是向Anthony表示警告,因为他可能还不太熟悉javascript,以至于在他提出问题的基础上意识到你在脚本中添加了什么。不确定-我还没有对这个问题投任何票。我不认为你有罪,但几乎有一个人在谈论这个话题。这只会让复制粘贴和小版本的用户笑哈哈哈谢谢你的回答我尝试了一些类似你所做的事情,但另一个问题仍然存在。我解释说:我收到了一个警报,但是我的controller.php(处理研究功能的php脚本)仍然被调用(使用了错误的参数),所以我正在寻找阻止php脚本的东西。我认为javascript在默认情况下会处理这个问题,但看起来他好像是在上面的IF/ELSE语句中,用对PHP脚本的调用替换这里的//搜索代码,除非该数字小于最大值,否则它永远不会运行。您也可以尝试在if语句中的警报之后添加“return;”。我没有使用else语句。我使用了一个返回(false),我还尝试了history.back和一些类似的东西。因此,也许问题出在其他地方,我发现了问题,我不知道我也必须在表单中使用“return”。我的意思是:onsubmit=“return submit()”检查函数的返回值!所以它现在起作用了,谢谢!
<input id="min" type="text">
<input id="max" type="text">
var min = document.querySelector('#min');
var max = document.querySelector('#max');

var calculate = function() {
  if(max.value == '') return;
  if(Number(min.value) > Number(max.value)) {
    min.value = max.value;
  }
}

min.addEventListener('input', calculate);
max.addEventListener('input', calculate);
<form name="myForm" onSubmit="submit()" method="post">
    <input name="price_mini" type="text">
    <input name="price_maxi" type="text">
    <input type="submit" value="Submit">
</form>
function submit(){
    var price_mini = document.forms["myForm"]["price_mini"].value;
    var price_maxi = document.forms["myForm"]["price_maxi"].value;

   if(Number(price_mini) > Number(price_maxi)){
    alert("Minimum price must be less than maximum price!");
   }else{
    // Your search code here
   }
}