我可以调用 JS 函数吗?如何调用?
Can I call JS function and how?
Okey社区,
function validate() {
var name = document.getElementById("name").value;
var p = document.getElementById("pname");
console.log("validating"); // added by PM-77-1
if (name === null) {
p.className += " show";
return false;
} else {
return true;
}
}
.split {
height: 100%;
position: fixed;
top: 0;
}
.left {
left: 0;
width: 40%;
}
.right {
right: 0;
width: 60%;
}
.form {
margin: 30% 5% 30% 5%;
}
.input {
margin: 2% 2% 2% 2%;
height: 40px;
width: 35%;
}
.lower {
width: 76%;
}
h6 {
background-color: #3399ff;
margin-top: 0px;
min-height: 50px;
max-height: 50px;
font-size: 32px;
color: white;
}
button {
background-color: #3399ff;
color: white;
width: 77%;
min-height: 50px;
border: none;
border-radius: 5px;
margin-top: 10%;
}
body {
font-family: Futura Md BT;
}
#map_canvas {
height: 100%;
}
.name {
display: none;
}
.lastname {
display: none;
}
.address {
display: none;
}
.city {
display: none;
}
.country {
display: none;
}
.show {
display: block;
margin-top: 0px;
margin-bottom: 0px;
color: red;
}
<div class="split left">
<center>
<h6>User Details</h6>
<div class="form">
<form action="input.php" method="POST" onsubmit="event.preventDefault(); validate()">
<p class="name" id="pname">Please enter First Name</p>
<p class="lastname" id="lastname">Please enter Last Name</p>
<p class="address" id="address">Please enter Street / Number</p>
<p class="city" id="city">Please enter City</p>
<p class="country" id="country">Please enter country</p>
<input type="text" class="input" id="name" name="firstname" placeholder="First Name">
<input type="text" class="input" id="lastname" name="lastname" placeholder="Last Name"><br>
<input type="text" class="input lower" id="address" name="streetnumber" placeholder="Street / Number"><br>
<input type="text" class="input lower" id="city" name="city" placeholder="City"><br>
<input type="text" class="input lower" id="country" name="country" placeholder="Country"><br>
<button type="submit" onclick="return validate()">Add User</button>
</form>
</div>
</center>
</div>
请测试一下并告诉我为什么它不起作用。我尝试了一切,但不知何故我的 js 没有触发。我更改了 ID 和所有内容。另外告诉我我是否在验证默认值的表单中做对了,因为我是第一次这样做。非常感谢大家。
我使用 body onload(启动 google 地图)但我没有粘贴那部分,它工作正常。
请帮我举个例子,
非常感谢社区!!!
看起来您在 body 加载时调用了 initialize()(在您的 HTML 中),而您本应调用 validate() 函数。
onclick
不应返回任何内容,因此您可以删除 ()
并只使用函数名称
<button type="submit" onclick="return validate()">Add User</button>
<!-- Should be -->
<button type="submit" onclick="validate">Add User</button>
此外,您在检查 null
时应该检查空字符串
if (name === null) { ... }
// Should be
if (name === '') { ... }
- 首先,在您的标记正文中,您正在调用一个您未定义的函数。
- 其次,在您的
onclick
表格中,您在 return functionCall()
中放置了刚好需要的功能。没有 return. 这个词
- 第三,不知道你有没有看到,你的HTML很多ID重复,当你只能有1个ID(这就是为什么叫ID)
- 最后,我建议将您的函数验证更改为如下内容:
function validate() {
console.log("eslloooooooo")
var name = document.querySelector("#name").value;
var p = document.querySelector("#pname");
if (name.innerHTML === '') {
p.classList.add("show");
}
}
I recommend it cause first, you can use a querySelector
that uses CSS selectors and also you can use the option classList of your node to add a class to your item.
希望对您有所帮助
您的函数 validate
调用正常,但其中的一些语句执行得不是很好。这里有几个问题:
1- 要向元素 p
添加 class,请使用 p.classList.add("className")
2- 当用户将名称字段留空时,该值为空字符串 (''
),而不是空值。所以,而不是检查:
if (name === null)
改为检查:
if(name == '')
//or, even shorter:
if(!name)
因此,JS 变为:
function validate() {
var name = document.getElementById("name").value;
var p = document.getElementById("pname");
console.log("validating");
if (!name) {
p.classList.add( "show");
return false;
} else {
return true;
}
}
Okey社区,
function validate() {
var name = document.getElementById("name").value;
var p = document.getElementById("pname");
console.log("validating"); // added by PM-77-1
if (name === null) {
p.className += " show";
return false;
} else {
return true;
}
}
.split {
height: 100%;
position: fixed;
top: 0;
}
.left {
left: 0;
width: 40%;
}
.right {
right: 0;
width: 60%;
}
.form {
margin: 30% 5% 30% 5%;
}
.input {
margin: 2% 2% 2% 2%;
height: 40px;
width: 35%;
}
.lower {
width: 76%;
}
h6 {
background-color: #3399ff;
margin-top: 0px;
min-height: 50px;
max-height: 50px;
font-size: 32px;
color: white;
}
button {
background-color: #3399ff;
color: white;
width: 77%;
min-height: 50px;
border: none;
border-radius: 5px;
margin-top: 10%;
}
body {
font-family: Futura Md BT;
}
#map_canvas {
height: 100%;
}
.name {
display: none;
}
.lastname {
display: none;
}
.address {
display: none;
}
.city {
display: none;
}
.country {
display: none;
}
.show {
display: block;
margin-top: 0px;
margin-bottom: 0px;
color: red;
}
<div class="split left">
<center>
<h6>User Details</h6>
<div class="form">
<form action="input.php" method="POST" onsubmit="event.preventDefault(); validate()">
<p class="name" id="pname">Please enter First Name</p>
<p class="lastname" id="lastname">Please enter Last Name</p>
<p class="address" id="address">Please enter Street / Number</p>
<p class="city" id="city">Please enter City</p>
<p class="country" id="country">Please enter country</p>
<input type="text" class="input" id="name" name="firstname" placeholder="First Name">
<input type="text" class="input" id="lastname" name="lastname" placeholder="Last Name"><br>
<input type="text" class="input lower" id="address" name="streetnumber" placeholder="Street / Number"><br>
<input type="text" class="input lower" id="city" name="city" placeholder="City"><br>
<input type="text" class="input lower" id="country" name="country" placeholder="Country"><br>
<button type="submit" onclick="return validate()">Add User</button>
</form>
</div>
</center>
</div>
请测试一下并告诉我为什么它不起作用。我尝试了一切,但不知何故我的 js 没有触发。我更改了 ID 和所有内容。另外告诉我我是否在验证默认值的表单中做对了,因为我是第一次这样做。非常感谢大家。
我使用 body onload(启动 google 地图)但我没有粘贴那部分,它工作正常。
请帮我举个例子, 非常感谢社区!!!
看起来您在 body 加载时调用了 initialize()(在您的 HTML 中),而您本应调用 validate() 函数。
onclick
不应返回任何内容,因此您可以删除 ()
并只使用函数名称
<button type="submit" onclick="return validate()">Add User</button>
<!-- Should be -->
<button type="submit" onclick="validate">Add User</button>
此外,您在检查 null
时应该检查空字符串
if (name === null) { ... }
// Should be
if (name === '') { ... }
- 首先,在您的标记正文中,您正在调用一个您未定义的函数。
- 其次,在您的
onclick
表格中,您在 returnfunctionCall()
中放置了刚好需要的功能。没有 return. 这个词
- 第三,不知道你有没有看到,你的HTML很多ID重复,当你只能有1个ID(这就是为什么叫ID)
- 最后,我建议将您的函数验证更改为如下内容:
function validate() {
console.log("eslloooooooo")
var name = document.querySelector("#name").value;
var p = document.querySelector("#pname");
if (name.innerHTML === '') {
p.classList.add("show");
}
}
I recommend it cause first, you can use a
querySelector
that uses CSS selectors and also you can use the option classList of your node to add a class to your item.
希望对您有所帮助
您的函数 validate
调用正常,但其中的一些语句执行得不是很好。这里有几个问题:
1- 要向元素 p
添加 class,请使用 p.classList.add("className")
2- 当用户将名称字段留空时,该值为空字符串 (''
),而不是空值。所以,而不是检查:
if (name === null)
改为检查:
if(name == '')
//or, even shorter:
if(!name)
因此,JS 变为:
function validate() {
var name = document.getElementById("name").value;
var p = document.getElementById("pname");
console.log("validating");
if (!name) {
p.classList.add( "show");
return false;
} else {
return true;
}
}