所以基本上我正在尝试创建一个更具交互性的日期选择器。我这样做是首先允许用户输入他们的名字。一旦他们点击提交,它现在应该说...你好“用户的名字”。
但由于某种原因,我使用的if else语句将无效。我查看了我的代码,它看起来是正确的,但用户输入不会打印出来。它还应检查输入是否为字符串,它将继续。如果它只是一个字符串,如数字,它将输出到屏幕上......“你必须告诉我们你的名字继续前进!”。如何在用户输入的任何内容上使用if else语句?有人可以查看我的代码并帮助我吗?我四处张望,沿着这些路线找不到任何东西。也许这是重复的,或者我完全错误地解决了这个问题,我只是不确定。谢谢您的帮助。建议做得更好也将受到高度赞赏! :)
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Going On Vacation!</title>
<link type="text/css" rel="stylesheet" href="stylesheet.css"/>
</head>
<body>
<h1>Heading Somewhere?</h1>
<div id="main">
<h2>What is your name?</h2>
<input id="name" type= "text" placeholder=" Tell us!">
<button id ="submit">Submit!</button>
</div>
<p id="user"></p>
<p id="when"></p>
<input id="date" placeholder="Choose your departure!">
<p id="error1"></p>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
THE JAVASCRIPT:
$('#date').hide();
function userName(){
var user_name = $('#name').val();
$('#submit').click(function(){
if(typeof user_name === 'string'){
$('#main').hide('slow');
document.getElementById("user").innerHTML = "Hello " + user_name + "!";
$('#user').css("margin-left", "641px");
$('#when').css("margin-left", "598px");
document.getElementById("when").innerHTML = "When are you leaving?";
$('#date').show();
$('#date').datepicker();
} else {
document.getElementById("error1").innerHTML = "You must tell us your name to move on!";
}
});
};
$(document).ready(userName);
答案 0 :(得分:0)
它不起作用,因为您在用户填写之前正在阅读用户名字段!
var user_name = $('#name').val();
该行必须在提交方法中。
其次,检查类型没有意义。你想检查长度。
$('#submit').click(function(){
var user_name = $.trim($('#name').val());
if(user_name.length>0){
答案 1 :(得分:0)
user_name超出范围。只需将用户声明var移动到提交事件内部:
function userName(){
$('#submit').click(function(){
var user_name = $('#name').val();
if(typeof user_name === 'string'){
$('#main').hide('slow');
document.getElementById("user").innerHTML = "Hello " + user_name + "!";
$('#user').css("margin-left", "641px");
$('#when').css("margin-left", "598px");
document.getElementById("when").innerHTML = "When are you leaving?";
$('#date').show();
$('#date').datepicker();
} else {
document.getElementById("error1").innerHTML = "You must tell us your name to move on!";
}
});
};
如果您不希望每次用户点击提交时jQuery都在DOM中查找对象。您可以在范围外找到对象,但必须在提交事件中检索该值。例如:
...
var userObj = $('#name');
$('#submit').click(function(){
var user_name = userObj.val();
...