我有一个包含2个输入的表单
<input type="text" name="keyword" value="Search" onfocus="wipe(this)"/>
<input type="text" name="city" value="City" onfocus="wipe(this)"/>
和我的javascript在您用鼠标单击它时立即删除表单字段中的预设值:
function wipe(obj)
{
obj.value="";
}
我的问题是,假设用户没有在城市字段中输入任何内容,我如何制作它以便在提交表单时该字段的值为空而不是单词City?
感谢
答案 0 :(得分:2)
你在这里使用了错误的技术。你应该使用placeholder supported by most major browsers和IE的常规例外。所以,如果这不是你的问题,你肯定应该使用它。特别是,如果您有该字段的标签元素。否则,您需要在提交时检查该输入值,并查看它是否等于字符串城市
答案 1 :(得分:2)
占位符是一个很好的属性,当我们习惯使用值来显示我们拥有的这个文本框时,它可以解决您的过去时间历史问题
<input type="text" name="keyword" placeholder="Search" />
如果你仍然想使用java脚本修改你的代码,就像这样
<input type="text" name="keyword" value="Search" onfocus="wipe(this,'Search')" onblur="wipe2(this,'Search')"/>
<input type="text" name="city" value="City" onfocus="wipe(this,'City')" onblur="wipe2(this,'City')"/>
第二个approch的脚本函数
function wipe(obj, str)
{
if(obj.value!=str){
obj.value="";}
}
function wipe2(obj, str)
{if(obj.value==""){
obj.value=str;}
}
答案 2 :(得分:1)
在提交时为何不检查value='city'
if(obj.value!='city')
{
//your code here
}
或者如果您使用jquery使用水印插件没有问题,这也会处理浏览器兼容性问题
答案 3 :(得分:1)
只需声明一个变量hasChanged并在调用wipe函数时将其设置为true。然后在Submit按钮的onclick函数上调用一个函数说'SubmitFunction()'。
<input type="text" name="keyword" value="Search" id="Search" onfocus="wipe(this)"/>
<input type="text" name="city" value="City" id="City" onfocus="wipe(this)"/>
<input type="submit" name="submit" value="submit" onclick="SubmitFunction();"/>
var hasChanged=false;
function wipe(obj)
{
hasChanged=true;
obj.value="";
}
function SubmitFunction()
{
if(hasChanged==false)
{
$("#City").val('');
}
}
答案 4 :(得分:0)
试试这个:
if($('input[name="city"]').val() && $('input[name="city"]').val() != 'city') { yourform.submit(); }
答案 5 :(得分:0)
有关此问题的解决方案,请参阅How to prepopulate input text fields with prompting text which disappears on typing (jQuery)。如果您对使用HTML5没问题,最好的解决方案可能是使用“占位符”而不是“值”。
答案 6 :(得分:0)
您应该再添加一个属性(例如,默认<input type="text" name="keyword" default="Search" value="Search" onfocus="wipe(this)"/>
),其值与value属性相同。
在提交时比较每个表单字段
function onSubmit(){
for (var fields in form)
if(form[fields].value== form[fields].getAttribute("default")){
form[fields].value = "";
}
}
}