2010-10-20 29 views
0

与#2细人一些帮助,我建立了一个小型新闻订阅提交表单:为什么这个jQuery函数无法识别?

<div id="news-signup"> 
     <form action="news.php" method="post"> 
     <fieldset> 
      <input type="text" id="your-email" name="your-email" value="YOUR EMAIL ADDRESS" onfocus="if (this.value=='YOUR EMAIL ADDRESS') this.value='';" /> 
      <input type="submit" value="::Submit Query::" id="red-submit" /> 
     </fieldset> 
     </form> 
    </div> 

这里是一个确认邮件替换形式的jQuery:

$(document).ready(function() { 
    $('#news-signup form') 
    .validate({ 
    submitHandler: function(form) { 
     $(form).ajaxSubmit({ 
      success: function() { 
      var Image = $('<img />').attr({src:'_images/register-thanks.png', width:332, height:35, alt:"Success"}); 
       $('#news-signup form').hide(); 
       $('#news-signup').append(Image); 
      } 
     }); 
    } 
    }); 
}); 

该作品完美在这个page,但更换图像不踢这个page

我希望得到一些指导解决这个问题。

谢谢。

回答

1

我真的不明白为什么这不应该工作(但我也喜欢PrototypeJS),但会发生什么,如果你摆脱这一切形式的东西,注册提交按钮点击回调?事情是这样的:

HTML

<div id="news-signup"> 
    <input type="text" id="your-email" name="your-email" value="YOUR EMAIL ADDRESS" /> 
    <input type="submit" value="::Submit Query::" id="red-submit" /> 
</div> 

我也摆脱了内嵌脚本(不这样做)的。

JS

$(document).ready(function() { 
    var emailInput = $("#your-email"); 

    emailInput.focus(function() { 
     // THREE = ! 
     if(this.value === "YOUR EMAIL ADDRESS") { 
      this.value = ""; 
     } 
    }); 

    emailInput.blur(function() { 
     if(this.value === "") { 
      this.value = "YOUR EMAIL ADDRESS"; 
     } 
    }); 

    $("#red-submit").click(function() { 
     $.ajax({ 
      type: 'POST', 
      url: 'news.php', 
      data: { 
       'your-email': emailInput.val() 
      }, 
      success: function() { 
       var image = $('<img />').attr({src:'_images/register-thanks.png', width:332, height:35, alt:"Success"}); 
       $('#news-signup input').hide(); 
       $('#news-signup').append(image);     
      } 
     }); 
    }); 
}); 

让我知道,如果它的工作。顺便一提,在比较对象时总是使用3 =。

+0

嗨菲尔。这非常接近。我把代码放在里面,表单被图像替换,但是它也会转到news.php。必须有一个步骤来防止加载页面。谢谢您的帮助。 – fmz 2010-10-20 16:29:34

+0

好的。您是否从HTML中删除了

标记?这一个不再需要。另外,您还可以尝试将更改为。由于JavaScript为您处理所有表单处理,因此您无需将此按钮指定为提交按钮。 – philgiese 2010-10-20 16:50:11

+0

嘿:)现在工作吗?如果是的话,会很酷,如果你接受我的答案,如果没有,给我一个更新,以便我们可以一起弄清楚。 – philgiese 2010-10-25 10:17:14

相关问题