#php #javascript
#php #javascript
Вопрос:
Я просто хочу знать, как вызвать функцию с формой, в которой нет кнопки отправки? Потому что с моим кодом на данный момент это не работает. Если у меня есть такая форма в моем signup.php
<?php
include 'connect.php';
include 'header.php';
echo '<h2>Register</h2>';
echo '
<div class="container">
<form id="submit" method="post" action="" onsubmit="return formValidating();">
<fieldset>
<legend> Enter Information </legend>
<br/>
<label for="user_name">Your username: </label>
<br/>
<input id="user_name" class="text" name="user_name" size="20" type="text">
<br/>
<br/>
<label for="user_pass">Your password: </label>
<br/>
<input id="user_pass" class="text" name="user_pass" size="20" type="password">
<br/>
<br/>
<label for="user_pass_check">Confirm password: </label>
<br/>
<input id="user_pass_check" class="text" name="user_pass_check" size="20" type="password">
<br/>
<br/>
<label for="user_email">Email: </label>
<br/>
<input id="user_email" class="text" name="user_email" size="20" type="email">
<br/>
<br/>
<button class="button positive" type="submit"> <img src="like.png" alt=""> Register </button>
</fieldset>
</form>
<div class="success" style="display: none;"> You are now a registered user!</div>
</div>';
?>
и в моем header.php У меня есть функция, которая называется formValidating
<!DOCTYPE HTML>
<head>
<title> ShareLink </title>
<link rel="stylesheet" href="style.css" type="text/css">
<script src="jquery-1.6.4.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="script.js"></script>
<!-- Back to Top easing jQuery -->
<link rel="stylesheet" type="text/css" media="screen,projection" href="css/ui.totop.css" />
<!-- jquery -->
<script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
<!-- easing plugin ( optional ) -->
<script src="js/easing.js" type="text/javascript"></script>
<!-- UItoTop plugin -->
<script src="js/jquery.ui.totop.js" type="text/javascript"></script>
<!-- For the form submit -->
<script src="addMember.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
/*
var defaults = {
containerID: 'moccaUItoTop', // fading element id
containerHoverClass: 'moccaUIhover', // fading element hover class
scrollSpeed: 1200,
easingType: 'linear'
};
*/
$().UItoTop({ easingType: 'easeOutQuart' });
});
</script>
<script type="text/javascript">
/////////////////////////////////////////////////////////////
////////////////////// FORM VALIDATION //////////////////////
/////////////////////////////////////////////////////////////
function formValidating(){
//username variables
var username = document.getElementById["user_name"].value;
//email variables
var email = document.getElementById["user_email"].value;
var atpos = email.indexOf("@");
var dotpos = email.lastIndexOf(".");
//password variables
var password = document.getElementById["user_pass"].value;
var password2 = document.getElementById["user_pass_check"].value;
//username validation
if (username == null || username == "")
{
alert("Please enter your username");
return false;
}
//email validation
else if (atpos<1 || dotpos<atpos 2 || dotpos 2>=email.length){
alert("Please enter a valid email address");
return false;
}
//password validation
else if (password == null || password == "")
{
alert("Please enter your password");
return false;
}
else if (password != password2){
alert("Please make sure that your two passwords match")
return false;
}
}
</script>
</head>
<body>
<h1><></h1>
<div id="wrapper">
<div id="menu">
<a class="item" href="/index.php">Home</a> -
<a class="item" href="/create_topic.php">Create a topic</a> -
<a class="item" href="/create_cat.php">Create a category</a> -
<a class="item" href="/members.php"> Members </a> -
<a class="item" href="/search_form.php"> Search </a> -
<a class="item" href="/profile.php"> Profile </a>
<div id="userbar">
<?php
if($_SESSION['signed_in'])
{
echo 'Welcome <b>' . htmlentities($_SESSION['user_name']) . '!</b> <a class="item" href="signout.php">Log out</a>';
}
else
{
echo '<a class="item" href="signin.php">Log in</a> or <a class="item" href="signup_2.php">Register</a>';
}
?></div>
</div>
<div id="content">
Как я могу вызвать эту функцию fomValidation? Пожалуйста, помогите!!
Спасибо !! 🙂
Ответ №1:
самый простой способ — заменить
<button class="button positive" type="submit">
с помощью
<button id="myButton" class="button positive" type="submit" onClick="formValidating()">
и добавьте
document.getElementById("myButton").submit();
до конца функции formValidating()
Ответ №2:
Вы должны использовать круглые скобки вместо скобок getElementById
внутри вашей функции. Итак, getElementById(...)
вместо getElementById[...]
. (см. Внизу ответа)
Заменить <button class="button positive" type="submit">
на <input class="button positive" type="submit" />
.
Ваш исправленный код:
function formValidating(){
//username variables
var username = document.getElementById("user_name").value;
//email variables
var email = document.getElementById("user_email").value;
var atpos = email.indexOf("@");
var dotpos = email.lastIndexOf(".");
//password variables
var password = document.getElementById("user_pass").value;
var password2 = document.getElementById("user_pass_check").value;
//username validation
if (username == null || username == "")
{
alert("Please enter your username");
return false;
}
//email validation
else if (atpos<1 || dotpos<atpos 2 || dotpos 2>=email.length){
alert("Please enter a valid email address");
return false;
}
//password validation
else if (password == null || password == "")
{
alert("Please enter your password");
return false;
}
else if (password != password2){
alert("Please make sure that your two passwords match")
return false;
}
}
Ответ №3:
просто используйте событие onClick для вашего элемента button:
onclick="formValidating();"
вам нужно изменить этот тип =»отправить» на тип =»кнопка»
Обновить:
Я поиграл с этим в jsFiddle:
Я получил кнопку для вызова функции с помощью jQuery…
Комментарии:
1. Joemeister — попробуйте сейчас со скрипкой.