Функция JQuery .submit не будет отправлять форму в IE - PullRequest
1 голос
/ 14 апреля 2010

У меня есть форма, которая представляет некоторые значения в код JQuery, который затем отправляет электронное письмо со значениями из формы. Он отлично работает в Firefox, но не работает в IE6 (удивительно!) Или IE7. У кого-нибудь есть предложения, почему? Я высоко оценил? Я видел в некоторых блогах, что это может быть связано с кнопкой отправки в моей форме, но ничего из того, что я пробовал, похоже, не работает.

Вот форма HTML:

<form id="myform1">

<input type="hidden" name="itempoints" id="itempoints" value="200"> </input>

<input type="hidden" name="itemname" id="itemname" value="testaccount"> </input>

<div class="username">
    Nickname:

    <input name="nickname" type="text" id="nickname" />
</div>
<div class="email">
    Email:
    <input name="email" type="text" id="email" />
</div>
<div class="submitit">
    <input type="submit" value="Submit" class="submit" id="submit" />
</div>

</form>

и вот мой JQuery:

var $j = jQuery;

$j("form[id^='myForm']").submit(function(event) {

 var nickname = this.nickname.value;
 var itempoints = this.itempoints.value;
 var itemname = this.itemname.value;
 event.preventDefault();  
 var email = this.email.value;
 var resp = $j.ajax({
  type:'post',
  url:'/common/mail/application.aspx',
  async: true,
  data: 'email=' +email 
   + '&nickname=' + nickname 
   + '&itempoints=' + itempoints 
   + '&itemname=' + itemname,
  success: function(data, textStatus, XMLHttpRequest) {
   alert("Your mail has been sent!");
   window.closepopup();

  }
 }).responseText;
 return false;
});

Ответы [ 3 ]

2 голосов
/ 14 апреля 2010

Ваш селектор jQuery ищет myForm, но идентификатор формы - myForm1

$ j ("form [id ^ = ' myForm ']") и id формы = " myform1 "

Попробуйте $ j ('form # myform1') ...

0 голосов
/ 14 апреля 2010

Так как вы на самом деле не отправляете форму, почему бы вам просто не сделать кнопку отправки кнопкой, а не отправить, и выполнить действия в событии click (), как показано ниже:

var $j = jQuery;

$j("#btnSubmit").click(function(event) {

 var nickname = $("#nickname").val();
 var itempoints = $("#itempoints").val();
 var itemname = $("#itemname").val();

 var email = this.email.value;
 var resp = $j.ajax({
  type:'post',
  url:'/common/mail/application.aspx',
  async: true,
  data: 'email=' +email 
   + '&nickname=' + nickname 
   + '&itempoints=' + itempoints 
   + '&itemname=' + itemname,
  success: function(data, textStatus, XMLHttpRequest) {
   alert("Your mail has been sent!");
   window.closepopup();

  }
 })
});

НТН

0 голосов
/ 14 апреля 2010

Похоже, что ваша форма нуждается в method и action.

...