2013-04-21 2 views
2

Я пытаюсь настроить форму с помощью метода щелчка jQuery. Для html я не хочу использовать onClick, а скорее звоню с id clickMe для отображения имени. Кажется, он не работает. Это возможно? если да, что мне не хватает?Я пытаюсь настроить форму с помощью метода jQuery click

var getName = function() 
{ 
if (document.getElementById("FirstName").value == "" || document.getElementById("LastName").value == "") 
{ 
return ("Please enter your first name and last name."); 
} 

else {var fullName = document.getElementById("FirstName").value + ' ' + document.getElementById("LastName").value; 
return fullName; 
} 
} 

var displayName = function() 
{ 

    $(document).ready(function(){ 
    $("#clickMe").click(function(){ 
     alert(displayName()); 
    }); 
}); //end ready 

} 

HTML

<form name="form" id="form" method="post" action=""> 

<p class="FirstName"> 
    <label for="FirstName">First Name:</label> 
    </p> 
    <p> 
    <input name="FirstName" type="text" id="FirstName" /> 

</p> 

<p class="LastName"> 
    <label for="LastName">Last Name:</label></p> 
    <p> 
    <input name="LastName" type="text" id="LastName" /> 

    </p> 


<p class="submit"> 
    <input name="submitButton" type="button" id="clickMe" value="Display Name" /> 
    </p> 
</form> 

ответ

1

ответ знакомства acdcjunior для правильного анализа того, что случилось с вашим существующим кодом. На самом деле я думаю, что ваша displayName функция избыточна здесь, и вы могли бы упростить вещи значительно обновив свой код следующим образом:

$(document).ready(function() { 

    var getName = function() { 
     if (document.getElementById("FirstName").value == "" || document.getElementById("LastName").value == "") { 
      return ("Please enter your first name and last name."); 
     } else { 
      var fullName = document.getElementById("FirstName").value + ' ' + document.getElementById("LastName").value; 
      return fullName; 
     } 
    } 

    $("#clickMe").click(function(){ 
     alert(getName()); 
    }); 
}); 
+0

Я попытался GetName раньше, и что, кажется, не работает. – user2197436

+0

Возможно, это вне сферы действия, поскольку оно объявлено вне функции обратного вызова jquery. Попробуйте код в моем отредактированном ответе выше. –

+0

, который тоже не работает. похоже, я забыл о готовящейся функции в соответствии с вашим кодом. Я могу работать, используя onClick в html, но не используя id. – user2197436

2

Вы видите, этот код:

$(document).ready(function(){ 
    $("#clickMe").click(function(){ 
     alert(displayName()); 
    }); 
}); 

Принимают внутрь displayName:

var displayName = function() 
{ 
... 
} 

И displayName никогда не вызывается. Таким образом, событие click() никогда не настраивается.

Либо считать, что $(document).ready() код снаружи, или поместить вызов displayName, как это:

var getName = function() 
{ 
    if (document.getElementById("FirstName").value == "" || document.getElementById("LastName").value == "") 
    { 
     return ("Please enter your first name and last name."); 
    } 
    else { 
     var fullName = document.getElementById("FirstName").value + ' ' + document.getElementById("LastName").value; 
     return fullName; 
    } 
} 

var displayName = function() 
{ 
    $(document).ready(function(){ 
     $("#clickMe").click(function(){ 
      alert(displayName()); 
     }); 
    }); //end ready 

} 

$(function() { displayName(); }); // <-- calling displayName here! 
Смежные вопросы