限制将输入字段与另一个字段进行比较
Restrict live an input field comparing it to another field
我有一个 php 页面和这两个输入字段。我的目标是检查第二个输入是否等于第一个输入(实时)并发出错误消息。到目前为止我的代码是这样的:
<div class="input-group date" id="timepicker1"
data-target-input="nearest">
<input type="text"
class="form-control datetimepicker-input"
data-target="#timepicker1"
name="FirstDate" id="FirstDate" />
</div>
<div class="input-group date" id="timepicker2"
data-target-input="nearest">
<input type="text" onclick="CheckForErrors()"
class="form-control datetimepicker-input"
data-target="#timepicker2"
name="SecondDate" id="SecondDate" />
</div>
在 php 的最后我有一个 Javascript 检查:
<script type="text/javascript">
function CheckForErrors() {
// Check if First Time is equal with second Time
if (FirstDate == SecondDate) {
alert("Error MSG!");
}
return false;
}
</script>
如您所知,它不起作用。有什么帮助吗?
PS。我是初学者所以请耐心等待:D
您可以通过 document.querySelector({selector}).value 获取输入值。所以你的代码应该是:
<script type="text/javascript">
function CheckForErrors() {
// Check if First Time is equal with second Time
if (document.querySelector("#FirsDate").value == document.querySelector("#SecondDate").value) {
alert("Error MSG!");
return true;
}
return false;
}
</script>
你也在做检查,如果是真的,你会显示错误信息。但是你的函数总是 returns false。在检查中添加 return true 以停止进一步执行。
我稍微更改了您的代码。首先,我删除了 eventListener 的 Tag 内联分配(不好的做法)。然后我检查每个 keyup
字段。它适用于两个方向。意味着如果您开始在第二个字段中键入内容,它将立即检查第一个字段。反之亦然。
box = document.getElementById('doubleChecker');
box.addEventListener('keyup', (e) => {
const i1 = document.getElementById('timepicker1').children[0]
const i2 = document.getElementById('timepicker2').children[0]
console.log(i1.value , i2.value)
if (i1.value == i2.value) {
alert("Error MSG!");
return false;
}
});
<div id="doubleChecker">
<div class="input-group date" id="timepicker1"
data-target-input="nearest">
<input type="text"
class="form-control datetimepicker-input"
data-target="#timepicker1"
name="FirstDate" id="FirstDate" />
</div>
<div class="input-group date" id="timepicker2"
data-target-input="nearest">
<input type="text"
class="form-control datetimepicker-input"
data-target="#timepicker2"
name="SecondDate" id="SecondDate" />
</div>
</div>
我有一个 php 页面和这两个输入字段。我的目标是检查第二个输入是否等于第一个输入(实时)并发出错误消息。到目前为止我的代码是这样的:
<div class="input-group date" id="timepicker1"
data-target-input="nearest">
<input type="text"
class="form-control datetimepicker-input"
data-target="#timepicker1"
name="FirstDate" id="FirstDate" />
</div>
<div class="input-group date" id="timepicker2"
data-target-input="nearest">
<input type="text" onclick="CheckForErrors()"
class="form-control datetimepicker-input"
data-target="#timepicker2"
name="SecondDate" id="SecondDate" />
</div>
在 php 的最后我有一个 Javascript 检查:
<script type="text/javascript">
function CheckForErrors() {
// Check if First Time is equal with second Time
if (FirstDate == SecondDate) {
alert("Error MSG!");
}
return false;
}
</script>
如您所知,它不起作用。有什么帮助吗? PS。我是初学者所以请耐心等待:D
您可以通过 document.querySelector({selector}).value 获取输入值。所以你的代码应该是:
<script type="text/javascript">
function CheckForErrors() {
// Check if First Time is equal with second Time
if (document.querySelector("#FirsDate").value == document.querySelector("#SecondDate").value) {
alert("Error MSG!");
return true;
}
return false;
}
</script>
你也在做检查,如果是真的,你会显示错误信息。但是你的函数总是 returns false。在检查中添加 return true 以停止进一步执行。
我稍微更改了您的代码。首先,我删除了 eventListener 的 Tag 内联分配(不好的做法)。然后我检查每个 keyup
字段。它适用于两个方向。意味着如果您开始在第二个字段中键入内容,它将立即检查第一个字段。反之亦然。
box = document.getElementById('doubleChecker');
box.addEventListener('keyup', (e) => {
const i1 = document.getElementById('timepicker1').children[0]
const i2 = document.getElementById('timepicker2').children[0]
console.log(i1.value , i2.value)
if (i1.value == i2.value) {
alert("Error MSG!");
return false;
}
});
<div id="doubleChecker">
<div class="input-group date" id="timepicker1"
data-target-input="nearest">
<input type="text"
class="form-control datetimepicker-input"
data-target="#timepicker1"
name="FirstDate" id="FirstDate" />
</div>
<div class="input-group date" id="timepicker2"
data-target-input="nearest">
<input type="text"
class="form-control datetimepicker-input"
data-target="#timepicker2"
name="SecondDate" id="SecondDate" />
</div>
</div>