如果条目与PHP数组匹配,则Jquery更改输入背景颜色?

时间:2013-12-29 12:27:10

标签: php jquery css input

我有一个包含3个字段的简单表单。用户,身份证,电子邮件。 我有2个PHP数组$ user& $ ID

当用户在name或id字段中输入name时,我希望各个php数组检查,如果名称或id在数组中,则更改它们当前所在输入框的背景颜色。

如果他们更新了条目,那么检查应该继续,如果没有找到匹配,则将背景恢复为原始的白色。

如果他们清空输入字段,那么颜色应该变回白色。

页面可能预先加载了值,因此我可能会在初始加载时使用php更改背景颜色。

我发现了这个,它适用于它的数组中的指定字符:

$('input').bind("change keyup", function() {
 var val = $(this).val();
 var regex = /["<>&]/g;
 if (val.match(regex)) {
   $(this).css("background", "red");
   val = val.replace(regex, "");
   $(this).val(val);
 }
 $("p").html(val);
});

我已经尝试更新它以支持php数组,但它不起作用,我不知道如何让它检查数组并恢复颜色。

这是我到目前为止所做的:

JFIDDLE

谢谢:)

更新

我使用以下方法解决了这个问题:

$(function(){
 $('input').bind("change keyup", function() {
    var val = $(this).val();
    if ($(this).attr('id')=="user") {
    var check = <?php echo json_encode($user)?>;
 } else {
    var check = <?php echo json_encode($id)?>;
}
if ($.inArray(val, check) != -1) {
    $(this).css("background-color", "red");
 } else {
    $(this).css("background-color", "white");
    }
  });
});

但是有更简洁的方式来写这个吗?

谢谢:)

1 个答案:

答案 0 :(得分:1)

如果你想在javascript中使用你的php数组,你可以这样做:

var myArray = <?php echo json_encode($myArray) ?>;

并执行javascript魔术