论坛首页 Web前端技术论坛

yui-ext中多个超链接共用一个id问题

浏览 10248 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-05-04  
大家好:
    我使用多个链接共用一个id,如下:
<c:forEach var="sSDIItem" items"${sSDIList}">
<c:if test="${(sSDIItem.grade==null)}
<input type="hidden" name="stuAssignID" value="${sSDIItem.stuAssignID}"/>
<a href="#"  onclick="javascript:transStuAssignID('${sSDIItem.stuAssignID}'); return false;" id="show-dialog-btn">录入成绩</a>
</c:if>
</c:forEach>

然后在ext中调用:
/*
* Ext JS Library 1.0
* Copyright(c) 2006-2007, Ext JS, LLC.
* licensing@extjs.com
*
* http://www.extjs.com/license
*/

// create the HelloWorld application (single instance)
var enterGrade = function(){
    // everything in this space is private and only accessible in the HelloWorld block
   
    // define some private variables
    var dialog, showBtn,postBtn;
    var wait,error,errorMsg;
    var grade,commentInfo;
   
    //var simple,grade,stuAssignID,commention;
   
    // return a public interface
    return {
        init : function(){
             showBtn = Ext.get('show-dialog-btn');
             wait = Ext.get('post-wait');
             error = Ext.get('post-error');
             errorMsg = Ext.get('post-error-msg');
             Ext.QuickTips.init();
             Ext.form.Field.prototype.msgTarget = 'under';
            
           
             grade = new Ext.form.TextField({
             allowBlank:false,
             regex:/^\d+(\.\d+)?$/,
             regexText:'必须输入实数,如3,2.5等'
              });
             grade.applyTo('grade');
            
           commentInfo=new Ext.form.TextArea({
          
            allowBlank:true,
            grow: true,
            preventScrollbars:true
          
        });
           commentInfo.applyTo('comment');
       
   
           
             
   /*          
        simple = new Ext.form.Form({
        labelWidth: 75, // label settings here cascade unless overridden
        url:'http://localhost:8080/WebAssignMIS/gradeManage.do?method=enterGrade'
    });
   
        stuAssignID=new Ext.form.TextField({
            fieldLabel: 'First Name',
            name: 'a',
            width:175,
           regex:/^\d+$/,
           regexText:'成绩必须为合法,如4或3.5等',
            allowBlank:false
        });
       
   
   
        grade=new Ext.form.TextField({
            fieldLabel: 'First Name',
            name: 'grade',
            width:175,
           regex:/^\d+$/,
           regexText:'成绩必须为合法,如4或3.5等',
            allowBlank:false
        });
       

      
       

       commention=new Ext.form.TextField({
            fieldLabel: 'Email',
            name: 'comment',
            vtype:'email',
            regexText:'电子邮件不合法',
            width:175
        });
      
       
   
    simple.add(stuAssignID,grade,commention);

    simple.addButton('确定',simple.submit,simple);
    simple.addButton('取消');
   
    simple.render('form-ct'); */
   
             
            
             // attach to click event
             showBtn.on('click', this.showDialog, this);
        },

         // submit the comment to the server
        submitComment : function(){
           
            wait.radioClass('active-msg');
             if(grade.validate()===false)
            {
            wait.update('验证信息不合法');
            return;
            }
            var commentSuccess = function(o){
             
               postBtn.disable();
               wait.update('录入成绩信息成功!');
                document.location.reload();
             
            };
           
            var commentFailure = function(o){
                postBtn.enable();
                error.radioClass('active-msg');
                errorMsg.update('不能连接服务器.....');
            };
   
            Ext.lib.Ajax.formRequest('comment-form', 'http://localhost:8080/WebAssignMIS/gradeManage.do?method=enterGrade',
                    {success: commentSuccess, failure: commentFailure});         
        },
        closeWindow : function(){
        grade.reset();
        commentInfo.reset();
        dialog.hide();
       
       
       
        },
   
       

      
        showDialog : function(){
            if(!dialog){ // lazy initialize the dialog and only create it once
                dialog = new Ext.BasicDialog("comments-dlg", {
                        autoTabs:true,
                        width:500,
                        height:330,
                        shadow:false,
                        minWidth:500,
                        minHeight:330,
                        proxyDrag:true



                });
                dialog.addKeyListener(27, dialog.hide, dialog);
                postBtn =dialog.addButton('确定', this.submitComment, dialog);
                dialog.addButton('关闭', this.closeWindow, dialog);

                dialog.on('hide', function(){
                wait.removeClass('active-msg');
                error.removeClass('active-msg');
                });

            }
            dialog.show(showBtn.dom);
        }
    };
}();

// using onDocumentReady instead of window.onload initializes the application
// when the DOM is ready, without waiting for images and other resources to load
Ext.EventManager.onDocumentReady(enterGrade.init, enterGrade, true);
//Ext.onReady(HelloWorld.init, HelloWorld, true);

但是在点击超链接的时候(由于有多个超链接),点击第一个超链接时候能弹出窗口,后面的就不能了。
请各位帮忙看看 是这么回事,谢谢!





   发表时间:2007-05-04  
http://ly999.net/fetch_air.asp
点击预定航班
0 请登录后投票
   发表时间:2007-05-05  
或者参考 JS函数式 的用法:
“下面你也许要尝试写下面的代码:
this.button.onclick = function() { alert(this.value); };

如果你执行它你就会发现提示框中间是空的。为什么会这样呢?其实原因在于JavaScript的可见性规则。当onclick函数被执行时this指向的是按钮的DOM节点而非自定义的按钮对象。

我们如何解决这个问题? 使用函数式编程:
this.button.onclick = (function(v) {
      return function() { alert(v); };
      }) (this.value);

这种情况下执行该匿名函数会将v绑定到this.value上。”
0 请登录后投票
   发表时间:2007-05-05  
三楼的兄弟在说啥呀!好像不是回答我的问题啊
0 请登录后投票
   发表时间:2007-05-06  
id不能共用,如果共用的话,在js中通过id也只能找到第一个,不是全部的
0 请登录后投票
   发表时间:2007-05-06  
先用CLASS匹配所有元素,然后获取这些元素后再通过this.id得到不同元素的id(这里不用id直接获取元素的方法,好处是事先不必知道id上限和下限)
0 请登录后投票
   发表时间:2007-05-06  
hitqiang 写道
三楼的兄弟在说啥呀!好像不是回答我的问题啊

What I wanted  talk to you, that is "授人以鱼不如授人以渔  ",got it?
0 请登录后投票
   发表时间:2007-05-07  
I have got it,thanks
0 请登录后投票
   发表时间:2007-05-18  
使用 Ext.select('a') 操作你的link
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics