javascript:如果用户没有更改,则表单值为空

时间:2012-09-05 12:19:31

标签: javascript html forms javascript-events

我有一个包含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?

感谢

7 个答案:

答案 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使用水印插件没有问题,这也会处理浏览器兼容性问题

Jquery Watermark

答案 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 = "";
      }
   }
}