表格's输入默认文本
Form's input default text
我迫切需要根据用户在表单选择输入中的选择来更改搜索表单的默认输入文本。当前默认输入文本为Enter Keywords…,无论选择哪个选项,都保持不变。例如,我想要的是,当用户选择"员工目录"时,搜索字段的默认输入文本将更改为输入员工的名字…
这是每个选择所需的输入字段:
"网站"=输入关键字…
"员工目录"=输入员工的名字…
"出版物中心"=输入出版物信息…
这是我目前的代码:
<script type="text/javascript">
function dosearch() {
var sf=document.searchform;
var submitto = sf.engines.options[sf.engines.selectedIndex].value + escape(sf.s.value) + ((sf.engines.selectedIndex=='1')?('&cat=29'):(''));
window.location.href = submitto;
return false;
}
</script>
<form name="searchform" class="search" method="get" onSubmit="return dosearch();">
<select class="engines" name="engines" id="el08">
<option value="/?s=" selected>Website</option>
<option value="/?s=">Publications Center</option>
<option value="/employee-directory?query=name&contact_dir_s=">Employee Directory</option>
</select>
<input name="s" class="input" type="text" value="Enter Keywords..." onfocus="if (this.value == 'Enter Keywords...') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Enter Keywords...';}" size="18" maxlength="50">
<input type="submit" name="searchsubmit" class="button" value="Go" />
</form>
任何有专业知识的人都可以帮助编码或提供建议,请这样做!干杯
用实际工作的代码更新(仅在IE中测试)。此版本会记录所选搜索选项何时更改,然后更新输入(如果它显示的是与以前所选的搜索选项一起出现的默认提示)。
<body onload="setDefault();">
<form name="searchform" class="search" method="get" onSubmit="return dosearch();">
<select class="engines" name="engines" id="el08" onchange="setDefault();">
<option value="/?s=" selected>Website</option>
<option value="/?s=">Publications Center</option>
<option value="/employee-directory?query=name&contact_dir_s=">Employee Directory</option>
</select>
<input name="s" id="searchBox" class="input" type="text" value="" onfocus="myFocusHandler(this);" onblur="myBlurHandler(this);" size="18" maxlength="50">
<input type="submit" name="searchsubmit" class="button" value="Go" />
</form>
</body>
<script>
function myFocusHandler(textField) {
if (textField.value == defText)
textField.value = "";
}
function myBlurHandler(textField) {
if (textField.value == "")
textField.value = defText;
}
var defText;
var defOptions = {
"Website" : "Enter keywords...",
"Employee Directory" : "Enter employee's first name...",
"Publications Center" : "Enter Publication's Information..."
// and any other options you may need
};
function setDefault() {
var sel = document.getElementById("el08"),
input = document.getElementById("searchBox"),
prevDefText = defText;
defText = defOptions[sel.options[sel.selectedIndex].text] || "Enter search term...";
if (prevDefText == undefined || input.value == prevDefText)
input.value = defText;
}
</script>
可以通过使用模块模式的变体或其他东西来减少全局变量的使用,但这是另一天的问题。
相关文章:
- 如果值为空,如何设置输入的默认值?jQuery
- Html5输入属性的默认值,如最小值、最大值、大小等
- 默认情况下,在ipython笔记本中隐藏输入单元格
- 在表单输入字段中创建默认值
- 如何通过javascript为输入类型日期分配默认值
- 如何在HTML输入框中传递VBScript字符串作为默认值
- 是否覆盖网站上文本输入区域的默认移动设备键盘?(HTML/JS/jQuery)
- 在发送之前,点击按钮清除多个输入[类型=文本]默认值
- 使用angularJS设置HTML5日期输入字段的默认值
- IE7在按压时”;输入“;键不会阻止默认操作
- 在动态输入数据的下拉菜单中设置默认值
- 根据角度中的另一个字段设置输入字段的默认值
- 角度JS数字输入和默认值
- 如何在引导日期输入中使今天的日期默认值
- 日期选择器始终以默认日期打开,而不是以没有 DAYS 的格式输入日期
- j查询验证插件,检查输入默认值
- 如何设置输入默认值与状态,也手动更新输入
- 阻止在TinyMCE中输入默认键盘事件
- 表格's输入默认文本
- Javascript函数允许在范围(08 - 15)之间输入时间,或者在单击时在文本框中输入默认(在范围内)时间