我有一个简单的聚焦/模糊。'"场馆名称"默认显示,因为它是输入类型的值。在"focus"中隐藏,如果没有文本,则在"blur"中再次显示。
这是输入字段
<input type="text" name="name" id="search_name" value="Name of Venue" maxlength="100" />
这是jQuery
$('#search_name').focus(function() {
if($(this).val() == 'Name of Venue') {
$(this).val('');
}
});
$('#search_name').blur(function() {
if($(this).val() == '') {
$(this).val('Name of Venue');
}
});
提交时,我不希望"场地名称"存储为$_GET['name']
的get变量。所以,我正在做<br /><br />
PHP
if($_GET['name'] === 'Name of Venue') {
$_GET['name'] = '';
}
但是,这不起作用。如果get变量是默认值,我如何使其在提交时为空?
如果可能,请考虑使用HTML5占位符属性。如果未输入任何内容,则该值将为空。
<input type="text" name="search_name" id="search_name" placeholder="Name of Venue" maxlength="100" />
它将自动出现/消失,因此您不需要焦点/模糊代码。此外,"name"对于name
来说是个坏名字,我会使用更独特的名称(通常id
会这样做)。
作为替代方案,您可以这样做:
<form id="myform" method="get" action="">
<input type="text" name="search_name" id="search_name" value="Name of Venue" maxlength="100" />
<input type="submit" id="submit_button" value="Submit" />
</form>
<script src="jquery-1.7.1.min.js"></script>
<script>
// ready() not need if <script> follows content, but best to put this in a .js file and link in <head>
$(document).ready(function() {
// Define once and you're good
var search_name = $('#search_name');
var submit_button = $('#submit_button');
var search_default = 'Name of Venue';
search_name.focus(function() {
if($(this).val() == search_default) {
$(this).val('');
}
});
search_name.blur(function() {
if($(this).val() == '') {
$(this).val(search_default);
}
});
$("#myform").submit(function(event) {
if (search_name.val() == '' || search_name.val() == search_default) {
event.preventDefault();
} else {
return true;
}
});
});
</script>
<?php
var_dump($_GET);
$name = '';
if (isset($_GET['search_name'])) {
// Without the check, we might run query when none exists
$name = $_GET['search_name'];
$name = $name != 'Name of Venue' ? $name : '';
}
var_dump($name);
?>
这将阻止使用空白或默认名称提交。将任何重复的逻辑放入函数中,并在PHP中使用任何额外的搜索变量处理GET时调用这些逻辑,这可能很方便。
您可以在客户端控制值,如果它是必需字段,则不要让表单提交。如果不需要,只需将值设置为"(如果是"场地名称")。
如果值为Name of Venue
,我认为在提交表单之前必须将字段值设为空白。
$('#frName').submit(function() { if($('#search_name').val() == 'Name of Venue' ){ $('#search_name').val('') } return false;});
如果要提交值,可以删除return false。希望它能帮助你