我从php $value
$field
动态生成了$value = 'mango';
和$field='user_username'
。我现在需要检查输入标识user_username
中输入的文本是否是芒果。
<input type="text" class="input-text um-field " name="user_username" id="user_username" placeholder="">
类似的东西:
<?php
$value = 'mango';
$field = 'user_username';
<script>
$(document).ready ( function(){
var value = $("#<?php echo $field;?>").val();
if(value === '<?php echo $value;?>') {
alert('hi');
}
});
</script>
?>
答案 0 :(得分:1)
您可以检查blur
上的值,因为在脚本开头调用了$(document).ready()
。此外,您必须在编写JavaScript之前关闭PHP标记:
<?php
$value = 'mango';
$field = 'user_username';
?>
<input type="text" class="input-text um-field " name="user_username" id="user_username" placeholder="">
<script>
$(document).ready(function(){
$("#<?php echo $field;?>").bind('blur', function(){
var value = this.value;
if(value === '<?php echo $value;?>') {
alert('hi');
}
});
});
</script>
答案 1 :(得分:1)
根据我的评论,您的脚本仅将输入字段的值在运行时与PHP变量进行比较。只要用户更新输入字段,JavaScript就不会自动执行比较 - 您必须将事件处理程序绑定到输入元素,以便在触发时重新调用逻辑来执行检查:
$(document).ready (function(){
var $field = $("#<?php echo $field;?>");
var expectedFieldValue = '<?php echo $value;?>';
$field.on('change', function() {
if ($(this).val() === expectedFieldValue) {
alert('hi');
}
});
});
有时候,如果你正在执行这样一个简单的逻辑,那么使用jQuery可能会有点笨拙。上述代码也可以在原生JS中重写,适用于现代的常绿浏览器:
document.addEventListener('DOMContentLoaded', function () {
var fieldElement = document.getElementById('<?php echo $field;?>');
var expectedFieldValue = '<?php echo $value;?>';
fieldElement.addEventListener('change', function () {
if (fieldElement.value === expectedFieldValue) {
alert('hi');
}
});
});
答案 2 :(得分:1)
更好的方法是将所需的字段加载到某个js变量中然后进行比较。
这是大致如何工作
$(document).ready(function(){
$("button").click(function(){
$.get("demo_test.php", function(data, status){
var server_data=data;
});
});
});
然后将其与所需的字段进行比较
$(document).ready ( function(){
var value = $("#<?php echo $field;?>").val();
if(value === server_data) {
alert('hi');
}
});
希望有所帮助