1

編集/追加フォーム jqGrid では、1 つのフィールドでファイルをアップロードする必要があります。最初は edittype=file を使用します。しかし、この要素のビューを変更する必要があるため、この関数を介して edittype=custom を使用します

function myelem (value, options) {
                                      var el=$("<div class='type_file'>"+
                                        "<input type='file' class='inputFile' id='"+options.name+"' name='"+options.name+"'/>" +
                                        "<div class='fonTypeFile'><input type='text' class='inputFileVal' readonly='readonly' id='fileName'"+
                                        " /></div>"+
                                        "</div>");
                                        var g='',val_file;
                                       $('.inputFile').change(function () { 
                                            g=$('.inputFile').val();        alert(g);                                   
                                            $('.inputFileVal').val(g);                                              
                                        }); 

                                    return el;
                                    }
                                    function myvalue(elem, operation, value) {
                                         $('input',elem).val('');
                                    }

ユーザーが選択したファイルは、テキスト フィールドに表示する必要があります。しかし、それは仕事ではありません。これをどのように変更しますか?

4

1 に答える 1

0

フォームに要素を追加してから、カスタム要素のオフセットを使用して、image(upload)のオフセットを作成します。

css:

.customelement { 
position: absolute; 
top: 0;
left: 0;
z-index: 2;
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0); 
-moz-opacity: 0;
-khtml-opacity: 0;
opacity: 0;
width: 237px; }
.fonTypeFile { 
width: 237px; 
height: 23px;
background: url(images/inputFile.png); 
position: relative;
top: 0;
left: 22;
z-index: 1;}       

 .inputFileVal { 
position: relative;
top: 3px;
left: 5px;
z-index: 2;
width: 150px;
background: none;
border: none;}

脚本:

function myelem (value, options) {
                                        var st="<input type='file'/><div class='fonTypeFile'><input type='text' class='inputFileVal' readonly='readonly' id='fileName'/></div>";                                            
                                        var el=$(st);
                                            $(el).change(function () {                                                      
                                                    var val_f=$(el).val();
                                                    $('.inputFileVal').val(val_f);
                                            });
                                        return el;
                                }
                                    function myvalue(elem, operation, value) {
                                        return $(elem).find("input").val();
                                    }
function  for_file(){
                                        $(".fonTypeFile").removeClass("customelement");
                                        var form_offset=$('.FormGrid').offset();
                                        var offset=$('.fonTypeFile').offset();
                                        var left=offset.left-form_offset.left;
                                        var top=offset.top-form_offset.top;
                                        $('.customelement').css({'left':left, 'top':top});
                                    }
$('#words').jqGrid({...}).navGrid('#wordsPager',... {...afterShowForm: function (formid) for_file();    }...});
于 2012-11-28T06:51:15.630 に答える