重述:
有一个PHP变量: $地址
有一个形式变量 addy
如果用户输入表单变量的值与PHP变量不匹配,则我要显示的跨度有一个跨度
例如,$地址变量=" 123 4th st"
Addy表单字段中的用户类型" 132 4th st"
用户单击字段(文本输入)后,由于地址不匹配,我希望跨度ID add_ck显示"地址不匹配"
但是,如果用户将Addy的内容更改为" 123 4th ST",则跨度ID add_ck不会显示任何内容,或者"。
我知道您可以通过Onchange事件进行表演/隐藏事件,并且我以前在下拉列表中使用过。但是,我要查找文本条目"更改"(通过单击字段外或进入其他字段来确定)与php变量以触发跨度显示/no-display事件是我试图找出的。
这是我到目前为止尝试的:
<?
$address = "123 4th St";
?>
<html>
<head>
<script>
var db_address = '<?php echo $address; ?>';
document.getElementById('address_field').addEventListener("change", function(){
compare_addresses();
});
var compare_addresses = function(){
var new_address = document.getElementById('address_field').value;
var the_span = document.getElementById('add_ck');
if(db_address == new_address)
{
//The addresses are equal. Show 'add_ck'.
add_ck.style.display = 'block';
}
else
{
//The addresses are not equal. Hide'add_ck'.
add_ck.style.display = 'none';
}
}
</script>
</head>
<body>
<form name="form" method="POST" action="">
<input type="text" name="addy" id="address_field">
<input type="submit">
</form>
<span id="add_ck">Testing</span>
</body>
</html>
首先,您的输入字段应具有ID。假设我们称其为 address_field
:
<input type="text" name="addy" id="address_field">
将php的值放在JS变量中:
var db_address = '<?php echo $address; ?>';
将事件侦听器添加到您的文本框:
document.getElementById('address_field').addEventListener("change", function(){
compare_addresses();
});
在compare_addresses
功能中,您比较两个字符串:
var compare_addresses = function(){
var new_address = document.getElementById('address_field').value;
var the_span = document.getElementById('add_ck');
if(db_address == new_address)
{
//The addresses are equal. Show 'add_ck'.
the_span.style.display = 'block';
}
else
{
//The addresses are not equal. Hide'add_ck'.
the_span.style.display = 'none';
}
}
PHP是服务器端,JavaScript在客户端上,因此在此处不确定的var addy seams。仅当表单在var $ _post ['addy']