gpt4 book ai didi

forms - Backbone.js 和表单输入模糊

转载 作者:行者123 更新时间:2023-12-02 04:47:36 26 4
gpt4 key购买 nike

我几乎是一个 backbonejs 新手。我正在向 mysql 提交表单数据。

我有一个特殊的输入框,用户可以在其中输入他或她的电子邮件地址作为用户名。就目前而言,我可以检查我所有的输入字段(用户、通行证、地址、电话等)客户端一边,在按钮上使用事件,加载模型,使用 PHP 将数据放入数据库。这工作得很好并且已经过测试。后端验证工作正常并提供给必要时浏览器。

现在我想在写入记录之前检查后端的登录名字段(我知道我可以在最终提交时在后端捕获它,但想在这里做)。如果用户已经拥有一个具有相同电子邮件地址的帐户,我想捕获该客户端。问题是当我离开登录名字段时,我似乎无法找到一种方法来捕捉这种模糊(或 onblur 或改变我使用的任何东西),这样我就可以(在 View 的渲染中是我所能想到的)离开, 再次使用 PHP 并发回标志"new"或“现有”

Google 开发者工具没有错误

    define([
'jquery',
'underscore',
'backbone',
'lib/jquery-migrate-1.2.1',
'models/RegisterModel',
'text!templates/RegisterTemplate.html',
'lib/jquery.maskedinput-1.0',
'lib/bootstrap-acknowledgeinput.min',
'lib/jqBootstrapValidation'
], function($, _, Backbone, jQueryMigrate, RegisterModel, RegisterTemplate,
MaskedInput,Ack, jqAck){

var RegisterView = Backbone.View.extend({

el: $("#container"),
events: {
'click .btn-primary': 'saveClient',
'focusout .loginname': 'usercheck'
},

usercheck: function() { //** not working
console.log("usercheck detected");
alert("Alerts suck.");
},

render: function(){

//Since our template has dynamic variables in it, we need to compile it
var compiledTemplate = _.template( RegisterTemplate, this.model );
this.$el.html(compiledTemplate); //Replaces EVERYTHING inside the <div
id="container">
this.$('#phone').mask('(999) 999-9999');
this.$('#phone2').mask('(999) 999-9999');
this.$('#zip').mask('99999');

$(function () { //** working
$("input,select,textarea").not("[type=submit]").jqBootstrapValidation();
});

$('.loginname').live("click", function () { //** not working
alert('AHHHHHH!');
});

$().acknowledgeinput({ // ** this works fine
success_color: '#00FF00',
danger_color: '#FF0000',
update_on: 'keyup'
});

** 我在 Chrome 中查看了 name/id = loginname 输入的模糊事件

HTML 我确实看过带有 id 的 elmement 的模糊(Chrome 说它是 input#loginname)确实附加了模糊事件。我稍微更改了我的代码,但它似乎仍然没有触发。我永远不知道 Backbone 是简单的还是其中之一“这个和范围”问题:)

<div id="container" class="row-fluid">
<div class="span6">
<div class="requiredNotice"><i class="icon-warning-sign icon-red"></i>&nbsp;Can't
be blank!</div>
<h3>New Client Registration:</h3>
<form class="form-horizontal" method="POST">
<fieldset>
<div class="control-group">
<label class="control-label required" for="loginname">UserID (Email
</label>
<div class="controls">
<div class="input-prepend" data-role="acknowledge-input">
<div data-role="acknowledgement"><i></i></div>
<input type="email" data-type="email" required="required"
placeholder="Use email account"
maxlength="254" name="loginname" id="loginname"
class="inputclass pageRequired
input-xlarge" />
</div>
<span class="loginname_error label label-info hide"></span>
</div>
</div> ... etc

events: {
'click .btn-primary' : 'saveClient',
'focusout #input.loginname' : 'userCheck'
// "blur input.loginname" : "userCheck"
},


userCheck: function(e) {
console.log("usercheck detected");
alert("Alerts suck.");
},

最佳答案

.live 这里不需要,你的事件散列也没有问题。模板可能有问题。我只是在这个 jsfiddle 中隔离了输入字段和 focusout 事件它工作正常。

<script type="text/template" id="formtemplate">    
<form>
<input type="text" class="loginname" value="" placeholder="enter login"/>
</form>
</script>

...

var View = Backbone.View.extend({
events:{
'focusout .loginname':'checkUser'
},
render:function(){
this.$el.html($('#formtemplate').html());
},
checkUser:function(e){
alert('checkUser'); //works well
}
});

var view = new View();
view.render();
view.$el.appendTo('body');

关于forms - Backbone.js 和表单输入模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19503262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com