我有一个简单的焦点/模糊。默认显示“Venue的名称”,因为它是输入类型的值。如果没有文字,它会隐藏在'焦点'上并且再次显示'模糊'。
这是输入字段
<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']
的获取变量。所以,我正在做<br /><br />
PHP
if($_GET['name'] === 'Name of Venue') {
$_GET['name'] = '';
}
但是,这不起作用。如果它是默认值,我怎样才能使get变量在提交时为空?
答案 0 :(得分:1)
如果可能,请考虑使用HTML5 placeholder属性。如果未输入任何内容,则该值将为空白。
<input type="text" name="search_name" id="search_name" placeholder="Name of Venue" maxlength="100" />
它会自动显示/消失,因此您不需要焦点/模糊代码。此外,“名称”是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时调用它们可能很方便。
答案 1 :(得分:0)
如果值为Name of Venue
,我认为您必须在提交表单之前将字段值设为空白。
$('#frName').submit(function() { if($('#search_name').val() == 'Name of Venue' ){ $('#search_name').val('') } return false;});
如果要提交值,可以删除return false。 Hope its helps you
答案 2 :(得分:0)
您可以在客户端控制值,如果是必填字段,则不要提交表单。如果不需要,只需将值设置为“”,如果它是“场地名称”。