【问题标题】:GetOrgChart value not updating in jquery validatorGetOrgChart 值未在 jquery 验证器中更新
【发布时间】:2015-10-09 07:54:31
【问题描述】:

我正在尝试更新 GetOrgChart 中的元素,为此我正在关注

HTML

<form id="one">
    <input type="text" name="aaa">
    <input type="text" name="bbb">
    <input type="submit" name='submitform' value="submit">
</form>
<br> 
<div id="people"></div>

JavaScript

var oneForm = $("#one");
$("#people").getOrgChart({  
        clickEvent: function( sender, args ) {
            alert('args.id value outside validate '+args.id);

            oneForm.show();
            oneForm.validate({
                 // to add new area for team
                 rules: {
                     aaa: {
                         required: true,
                         minlength: 3
                     },
                     bbb: {
                         required: true,
                         minlength: 3
                     }
                 },
                 submitHandler: function (form) {
                     alert('args.id value inside validate '+args.id);
                     oneForm.hide();
                     return false;
                 }
             })

            //return false; //if you want to cancel the event
        },

         primaryColumns: ["Name", "Type"],
         linkType: "M",
         editable: false,
         zoomable: false,
         movable: true,
         gridView: true,

        dataSource: [
            { id: 1, parentId: -1, Name: "Amber McKenzie", Title: "CEO", Address: "MyAddress"},
            { id: 2, parentId: 1, Name: "Ava Field", Title: "CTO", Phone: "+359 888 888 888"},
            { id: 3, parentId: 1, Name: "Evie Johnson", Title: "CFO", Car: "BMW"}]
    });

现在只需点击图表元素,然后提交表单,您就会看到

args.id 的值在首次单击后不会因validate 函数而改变

JsFiddle

【问题讨论】:

    标签: javascript jquery html jquery-validate getorgchart


    【解决方案1】:

    您的问题似乎是变量“args”的范围。

    它在clickEvent 上调用的匿名函数中“出生”变量,并且仅存在于该事件中。

    submitHandler 是由另一个内部函数管理的处理程序;所以它不在clickEvent的范围内。

    因此解决方案是声明(在两个函数之外具有页面范围的变量)。 然后,在点击事件中,将其分配为argsid。 这样你也可以在提交事件中使用它。

    简而言之(我用我添加的“//---”行评论):

    var oneForm = $("#one");
    var globalArgsId; //--- Declare "global" variable
    $("#people").getOrgChart({  
            clickEvent: function( sender, args ) {
                alert('args.id value outside validate '+args.id);
                globalArgsId = args.id; //--- Write value to global variable
    
                oneForm.show();
                oneForm.validate({
                     // to add new area for team
                     rules: {
                         aaa: {
                             required: true,
                             minlength: 3
                         },
                         bbb: {
                             required: true,
                             minlength: 3
                         }
                     },
                     submitHandler: function (form) {
                         alert('args.id value inside validate '+args.id);
                         alert('args.id value inside validate '+globalArgsId); //--- Access to global variable
                         oneForm.hide();
                         return false;
                     }
                 })
    
                //return false; //if you want to cancel the event
            },
    
             primaryColumns: ["Name", "Type"],
             linkType: "M",
             editable: false,
             zoomable: false,
             movable: true,
             gridView: true,
    
            dataSource: [
                { id: 1, parentId: -1, Name: "Amber McKenzie", Title: "CEO", Address: "MyAddress"},
                { id: 2, parentId: 1, Name: "Ava Field", Title: "CTO", Phone: "+359 888 888 888"},
                { id: 3, parentId: 1, Name: "Evie Johnson", Title: "CFO", Car: "BMW"}]
        });
    

    希望对您有所帮助... :)

    【讨论】:

      猜你喜欢
      • 2018-06-16
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 2017-09-20
      • 2017-08-22
      • 2012-11-18
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多