选择选项的值将在表单上返回 erro 时丢失
value of the select option going to be lost when it return a erro on the form
我知道这听起来很相似,但我找不到有用的文章。我在我的网站上有用于选择类别的选项 html 标签,但最终用户选择的值消失了(来到已选择的第一个值)。在一个例子中,我有这个标签
<select name="type" >
<option value="">select a category</option>
<option value="car">car</option>
<option value="van">van</option>
<option>
</select>
在示例中,当浏览器首次加载时,第一个选择框处于选中状态,任何用户都可以选择任何值,并且它不能为空。如果用户选择"van"并且已经在表单中填写了其他字段,但如果它在将值插入我的数据库之前返回错误, 此选择框值已重置为第一个值("选择类别")。我想再防止这种情况发生。我希望任何专家都能在这一点上帮助我。谢谢!
我想我理解你的问题。
网页的访问者填写许多数据字段,其中一个是选择控件。但是,如果将数据提交到数据库时出现问题,则在向用户重新显示页面时将擦除这些值。这是对的吗?
如果是这样,有几种方法可以解决它。
(1) 客户端字段验证:在提交表单之前,在允许表单继续提交之前,测试字段的值以确保它们有效。像这样:
javascript/jQuery:
$(document).ready(function(){
$('#myFormID').submit(function(e){
var first_name = $('#firstname').val();
var last_name = $('#lastname').val();
if (firstname=="" || lastname==""){
alert('Please complete all fields')
e.preventDefault();
}
});
}); //END document.ready
(2)阿贾克斯。Ajax 是一种允许您在不离开/刷新页面的情况下将数据提交到服务器(类似于使用表单)的方法。如果出现问题,可以更新页面,告诉用户要修复的内容 - 并保留用户的所有更改。您可以将<form>
容器与 AJAX 一起使用,但这不是必需的。你可以只使用 DIV,AJAX 也会一样工作。实际上,使用表单时,始终必须使用 event.preventDefault()
来阻止表单尝试离开页面(其默认行为)。
javascript/jQuery:
$(document).ready(function(){
$('#myFormID').submit(function(e){
var first_name = $('#firstname').val();
var last_name = $('#lastname').val();
if (firstname=="" || lastname==""){
alert('Please complete all fields')
e.preventDefault();
}
});
$('#myFormID').submit(function(e){
var first_name = $('#firstname').val();
var last_name = $('#lastname').val();
if (firstname=="" || lastname==""){
alert('Please complete all fields')
e.preventDefault();
}
$.ajax({
type: 'post',
url: 'add_the_data.php',
data: 'fn=' +firstname+ '&ln=' +lastname,
success: function(d){
if (d == 1){
//Success
$('#firstname').val('');
$('#lastname').val('');
alert('Form submission was successful');
}else
//Fail
alert('Data was not submitted. Please try again.')
$('#firstname').focus();
}
}
});
}); //End Submit
}); //END document.ready
add_the_data.php
<?php
$fn = $_POST['fn'];
$ln = $_POST['ln'];
//Do your database entry here
$out = add_the_data_function($fn, $ln); //returns 1 or 0
echo out;
引用:
有关 AJAX 的更多信息,一些简单示例
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 从函数返回角度承诺
- Javascript返回值只在循环中返回一次
- 从控制器返回后Ajax启动事件激发
- CKFinder 3为所选文件返回错误的URL
- 如何在d3.js中返回路径的y坐标
- 如何从jquery函数返回变量
- Angular js-返回一个包含类似
- JSONP请求返回结果,但也触发error_callback
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- JS验证ajax返回的html中的表单数据
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- AJAX:$_GET不返回任何值
- 从Javascript方法返回全局变量
- 选择选项的值将在表单上返回 erro 时丢失
- IE11在iFrame的Ajax POST操作期间返回状态0 (XMLHttpRequest: Network Erro