jQuery排序验证
jQuery Sortable validation
我是javascript&jquery,但我正试图了解如何实现一个验证表单,当用户按正确的顺序放置/拖动图像时,就可以提交表单。我有按不同顺序拖动的图像,以及一个在数组中输出顺序的警告框,但我该如何设置一个值,让用户在其中排列图像数组?我有最新版本的jQuery链接到页面和jQuery UI。
我正试图在代码中实现一个if-else语句。我只是不确定哪里出了问题。这是我到目前为止得到的。。
$(window).load(function(){
$(function() {
//$('#submit').on('click', function() {
//var valid = true,
//message = '';
$( "#sortable" ).sortable({
placeholder: "ui-state-highlight",
cursor: 'crosshair',
update: function(event, ui) {
var order = $("#sortable").sortable("toArray");
$('#image_order').val(order.join(","));
alert($('#image_order').val());
}
});
$( "#sortable" ).disableSelection();
//if('#image_order').val { != [4,3,2,1];
//valid = false; }
//else {
//window.location.href = "http://google.com"
//}
});
});
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/themes/smoothness/jquery-ui.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>
<form action="" method="post">
<input type="hidden" id="image_order" name="image_order" value="" />
<ul id="sortable" style="width: 524px;">
<li id="1" class="ui-state-default"><img src="http://placehold.it/100x90/ff0000/000000.png&text=1" /></li>
<li id="2" class="ui-state-default"><img src="http://placehold.it/100x90/ffff00/000000.png&text=2" /></li>
<li id="3" class="ui-state-default"><img src="http://placehold.it/100x90/00ff00/000000.png&text=3" /></li>
<li id="4" class="ui-state-default"><img src="http://placehold.it/100x90/00ffff/000000.png&text=4" /></li>
</ul>
<div style="clear:both;"></div>
<input name="Submit" value="RE-ORDER" type="submit" />
</form>
$(window).load(function(){
$(function() {
$( "#sortable" ).sortable({
placeholder: "ui-state-highlight",
cursor: 'crosshair',
update: function(event, ui) {
var order = $("#sortable").sortable("toArray");
order = JSON.stringify(order);
correct = JSON.stringify(["4","3","2","1"]);
if (order==correct){
//ENABLE WHATEVER HERE
}
}
});
$( "#sortable" ).disableSelection();
});
});
您可以添加一个validate()
函数,用于检查排序和提交表单的时间。
<input name="Submit" value="RE-ORDER" type="submit" onclick="return validate();"/>
您可以返回一个布尔值来判断表单是否有效,以阻止onClick
函数的传播。
在允许用户继续操作之前,只需浏览字段并确保顺序正确即可。
var expectedOrder = ["4", "3", "2", "1"];
var currentOrder = [];
window.validate = function() {
if ($('#username').val().trim() === '') {
return false;
}
if (!isEqual(currentOrder, expectedOrder)) {
return false;
}
return true;
}
$(document).ready(function () {
$('#sortable').sortable({
placeholder: 'ui-state-highlight',
cursor: 'crosshair',
update: function (event, ui) {
currentOrder = $("#sortable").sortable("toArray");
if (validate()) {
alert('Navigating to http://www.google.com...');
}
$('#sortable').disableSelection();
}
});
});
function isEqual(arr1, arr2) {
return arr1.join('').localeCompare(arr2.join('')) === 0;
}
body {
padding: 8px;
}
.req {
color: #FF0000;
font-weight: bold;
}
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/themes/smoothness/jquery-ui.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>
<form action="" method="post">
<label>Username:<span class="req" title="Field Required">*</span></label>
<input id="username" name="username" type="text" />
<br />
<input type="hidden" id="image_order" name="image_order" value="" />
<ul id="sortable" style="width: 524px;">
<li id="1" class="ui-state-default">
<img src="http://placehold.it/100x90/ff0000/000000.png&text=1" />
</li>
<li id="2" class="ui-state-default">
<img src="http://placehold.it/100x90/ffff00/000000.png&text=2" />
</li>
<li id="3" class="ui-state-default">
<img src="http://placehold.it/100x90/00ff00/000000.png&text=3" />
</li>
<li id="4" class="ui-state-default">
<img src="http://placehold.it/100x90/00ffff/000000.png&text=4" />
</li>
</ul>
<div style="clear:both;"></div>
<input name="Submit" value="RE-ORDER" type="submit" onclick="return validate();"/>
</form>
相关文章:
- 正在验证8个真/假复选框或复选框中的2个
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 借助asp.net验证或java脚本对多个文本进行验证
- 使用promise和mongoose对文档进行排序
- Selectize.js:如何对整数值的选项进行排序
- Javascript排序的图像弹出窗口..可以't单独弹出
- jQuery自定义验证比较多个输入的序列
- 使用html中的外部javascript进行数据验证
- 如何使用jquery Validation验证Formspread
- jquery中的文本框验证
- 在验证和发送邮件后更改联系人表单的 html
- 如何通过引用var Using DataTables来进行分页或排序
- 代码不会验证
- JS验证ajax返回的html中的表单数据
- 同步调用,直到用户通过angular验证为访问者
- Javascript UK 使用三个输入字段进行排序代码验证
- jQuery排序验证
- 在jquery中验证和排序日期
- 用于数字排序的Javascript验证
- Parsley js对验证约束和自定义错误消息进行优先级排序