当使用具有许多文本输入的表单时,当在任何输入元素中按下"输入"时,WebKit/Safari/Google Chrome会提交表单.即使没有提交输入元素也没有注册onclick处理程序.
例如,请参阅此示例代码:
<html>
<body>
<form method="POST" action=".">
<ul>
<li><input type="text" name="foo" value="<?=rand()?>"/></li>
<li><input type="text" name="bar" value="<?=$_POST['foo']?>"/></li>
</ul>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当在两个文本输入元素中的任何一个中按Enter键时,将提交表单.
由于我使用异步HTTP请求在JavaScript中处理我的表单,因此我需要阻止此行为.我可以为keypressed事件注册一个自定义处理程序来阻止默认和stopPropagation.但它看起来很丑陋,并且在动态添加新的文本输入元素时并不实用.
作为app引擎和python的新手,我可以按照Google提供的示例创建一个带有模板HTML页面的python应用程序,我可以在其中输入数据,将其提交到数据存储区并通过回读数据,只需发送,重新创建发送页面,以便我可以继续添加数据并再次存储.但是,我想要做的是提交数据,将数据存储在数据存储区中,而不刷新发送页面.将所有数据再次发回,似乎浪费了流量.
我目前正在处理上传页面,用户在表单中输入值,然后单击"提交".我将检查表单是否已提交,如果提交表明它们不是空的.这是我目前的代码
function validPost()
{
if(isset($_POST["title"]) && //if a post has been submitted
isset($_POST["artist"]) &&
isset($_POST["genre"]) &&
isset($_POST["url"]) &&
isset($_POST["user"]) )
{
if (strlen($_POST['title']) <= 0) {
echo 'ERROR: Please enter a title. </ br>';
return false;
}
else if (strlen($_POST['artist']) <= 0) {
echo 'ERROR: Please enter an artist. </ br>';
return false;
}
else if (strlen($_POST['genre']) <= 0) {
echo 'ERROR: Please select a genre. </ br>';
return false;
}
else if (strlen($_POST['url']) <= 0) {
echo 'ERROR: Please …Run Code Online (Sandbox Code Playgroud) 我有一个联系表单,它在我的服务器上托管时工作正常,但是当我将它上传到我的客户端服务器时,我遇到了问题.请查看此处的页面:http://www.conceptonegfx.com/contact.php
我在表单顶部收到以下错误
注意:使用未定义的常量'PHP_SELF' - 在第42行的E:\ Domains\c\conceptonegfx.com\user\htdocs\fns.php中假定为''PHP_SELF''
注意:未定义的索引:第42行的E:\ Domains\c\conceptonegfx.com\user\htdocs\fns.php中的'PHP_SELF'"id ="uploadform"enctype ="multipart/form-data">
以下是fns.php上的问题:
<?php
//start session
if(!isset($_SESSION))
{
session_start();
}
// prints form
function print_form(){
?>
<form method="post" class="action="<?php echo $_SERVER[’PHP_SELF’];?>" id="uploadform" enctype="multipart/form-data">
<p><label for="namefrom">Name <span class="required">*</span></label>
<input name="namefrom" id="namefrom" type="text" class="field" value="<?= $_SESSION['myForm']['namefrom']; ?>" tabindex="1"/></p>
<p><label for="emailfrom">Email <span class="required">*</span></label>
<input name="emailfrom" id="emailfrom" type="text" class="field" value="<?= $_SESSION['myForm']['emailfrom']; ?>" tabindex="3"/></p>
<p><label for="phone">Phone</label>
<input name="phone" id="phone" type="text" class="field" value="<?= $_SESSION['myForm']['phone']; ?>" tabindex="4"/></p>
<p><label for="message">Message <span class="required">*</span></label>
<textarea name="comments" id="comments" rows="10" cols="35" …Run Code Online (Sandbox Code Playgroud) if(isset($_POST['submit'])){
//code here
}
Run Code Online (Sandbox Code Playgroud)
如果我错了,请纠正我,但我相信如果用户使用"回车"键提交表单,上面的代码将无效.
这是真的?如果是这样,是否有另一个if语句我可以使用而不是这个来覆盖用户使用提交按钮并按Enter键?
我的MVC应用程序中有一个数据输入表单作为razor视图.此视图包含一些输入控件,验证器和提交按钮.当用户点击"提交"按钮时,它会执行验证,如果其中任何一个失败,则用户提交方法将被终止.当满足所有验证时,表单将被提交,但随着某些业务逻辑的执行,需要花费更多的时间.现在我不希望用户在此期间允许点击提交按钮.因此,应禁用"提交"按钮,并在提交完成后重新启用.
我怎样才能做到这一点?我想我需要为此编写JQuery,但不确定,要处理哪个事件.
我希望表单提交到同一页面,因此我将表单操作保留为黑色.我试过用<button type="submit">,<input type="button">然后<input type="submit">. 这是更多上下文的实时版本.当您单击"添加学生"时,单击"保存学生信息"按钮,它不执行任何操作,但关闭按钮可以正常工作.
这是我的模态的代码.
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Add a new student</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" role="form" method="post" action="">
<div class="form-group">
<div class="col-sm-offset-1 col-sm-10">
<input type="text" class="form-control" id="inputID" placeholder="Student ID Number">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-1 col-sm-10">
<input type="text" class="form-control" id="inputLast" placeholder="Last Name">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-1 col-sm-10">
<input …Run Code Online (Sandbox Code Playgroud) 我的代码有问题..我想在填写长度为10位数的文本框后自动提交.
这是我的javascript代码
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$("#idnya").on("input propertychange", function()
{
if($(this).val().length ==15){
$("#max").submit()
}
});
</script>
</script>
Run Code Online (Sandbox Code Playgroud)
这是我的PHP代码
<?php
include "koneksi.php";
echo"
<body>
<form id=max name='cingcing' action='lanjut.php' method='POST'>
<center>
<table>
<tr>
<td colspan=2> <center> id </center> </td>
</tr>
<tr>
<td> id number </td> <td> <input type=password id='idnya' name='idnya2'> </td>
</tr>
</center>
</form>
</body>
";
?>
Run Code Online (Sandbox Code Playgroud) 目前我有以下表格:
<form id="new_account_form" action="php/new-account.php" method="post">
<span>name</span>
</br>
<input type="text" name="main_name" required></input>
<br><br>
<span>email adres</span>
</br>
<input type="text" name="main_email" required value="<?php echo $email; ?>" disabled></input>
<br><br>
<span>user</span>
</br>
<input type="text" name="main_username" required value="<?php echo $username; ?>" disabled></input>
<br><br>
</form>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,电子邮件输入字段和用户名输入都包含回显的PHP值.输入字段不为空.
我现在面临的问题是当我提交表单并尝试$_POST其他页面中的输入字段时,我不断收到以下错误:
注意:未定义的索引:main_email
注意:未定义的索引:main_username
我是在错误的地方回应变量吗?
new-account.php文件包含以下代码:
<?php
//get data from form
$main_name = $_POST['main_name'];
$main_email = $_POST['main_email'];
$main_username = $_POST['main_username'];
echo $main_name;
echo "</br>";
echo $main_email;
echo "</br>";
echo $main_username;
echo "</br>";
?>
Run Code Online (Sandbox Code Playgroud) submit ×10
forms ×6
php ×5
html ×3
coding-style ×1
datastore ×1
if-statement ×1
isset ×1
javascript ×1
jquery ×1
modal-dialog ×1
python ×1
razor ×1
safari ×1
self ×1
webkit ×1