我在keith-wood.name/realPerson.html
使用了jQuery Real Person。但是,在配置和测试之后,它不起作用。以下是视图中的代码段。看起来没关系,显示capcha
$('.realperson_text').realperson({
length: 6,
chars: $.realperson.alphanumeric
});
<div class="form-group input-group-sm">
<h5>Capcha</h5>
<div class="realperson_text"></div>
@Html.TextBoxFor(p => p.defaultReal, new { @class = "form-control text-uppercase", @placeholder = "type capcha code", @maxlength = "6" })
</div>
public ActionResult UploadProfile(TestModel capcha_demo)
{
var salt = 12345;
if (rpHash(capcha_demo.defaultReal + salt) != Request.Form["realPersonHash"])
{
ViewBag.Message = "Capcha wrong";
}
}
是的,作为主页中的演示,我不知道Request.Form["realPersonHash"]
是什么。
你能告诉我怎么去吗?
答案 0 :(得分:0)
此插件使用它在表单提交之前添加元素的技巧。
在插件代码jquery.realperson.js第112行中,您有以下代码:
on('submit.' + inst.name, function() {
var name = inst.options.hashName.replace(/\{n\}/, elem.attr('name'));
var form = $(this);
form.find('input[name="' + name + '"]').remove();
form.append('<input type="hidden" class="' + self._hashClass + '" name="' + name +
'" value="' + hash(text + salt) + '">');
setTimeout(function() {
form.find('input[name="' + name + '"]').remove();
}, 0);
});
您可以看到它添加了一个输入(form.append),并在提交
之后删除它form.find('input[name="' + name + '"]').remove();
这就是所有技巧!