Ruby on rails 可以在jqgrid的文本框中拖放图像

Ruby on rails 可以在jqgrid的文本框中拖放图像,ruby-on-rails,textbox,drag-and-drop,jqgrid,Ruby On Rails,Textbox,Drag And Drop,Jqgrid,在我的rails应用程序中,iam使用jqgrid以行形式输入数据。有一个描述框允许某些字符。这里的问题是我可以拖放描述框接受的图像和URL。我如何防止它。 下面是经过编辑后我从main中取出的简短代码 $(document).ready(function() { colNamesData = [ 'Description', 'Hours'] colModelHash = [ {name:'description',index:'description',

在我的rails应用程序中,iam使用jqgrid以行形式输入数据。有一个描述框允许某些字符。这里的问题是我可以拖放描述框接受的图像和URL。我如何防止它。 下面是经过编辑后我从main中取出的简短代码

  $(document).ready(function() {

     colNamesData = [ 'Description', 'Hours']
     colModelHash = [ 
     {name:'description',index:'description', width:130,sorttype:"text", editable:true, edittype:"textarea", editoptions: {rows:"5",cols:"25",maxlength:"255"}, stype:'text'},
     {name:'hours',index:'hours', width:130, align:'center',editable:true, edittype:"select",editoptions:{value:"<%= hours_options %>"}, search:true, stype:'text'}
                      },
          ]
   $("#data_table").jqGrid({
      datatype: "local", 
      height: "auto",
      autowidth: true,
      ignoreCase: true,
      colNames: colNamesData, 
      colModel: colModelHash,
      pager: '#pager',
      rowNum:10,
      rowList:[10,25,50,100],
      sortname: 'hours',
      sortorder: 'desc',
      viewrecords: true,
      editurl:"/data_call.json", 
      caption: 'My info',

     },
      data:<%= raw @data_jqgrid_date.to_json %>
   });

   jQuery("#data_table").jqGrid('navGrid','#pager',{del:false,add:true,edit:false},{}, {}, {});  
   var details =  <%= raw @details.to_json %>

$(文档).ready(函数(){
colNamesData=['说明','小时数']
colModelHash=[
{name:'description',index:'description',width:130,sorttype:'text',editable:true,edittype:'textarea',editoptions:{rows:'5',cols:'25',maxlength:'255},stype:'text'},
{name:'hours',index:'hours',width:130,align:'center',edit:true,edittype:'select',editoptions:{value:},search:true,stype:'text'}
},
]
$(“#数据表”).jqGrid({
数据类型:“本地”,
高度:“自动”,
自动宽度:正确,
ignoreCase:是的,
colNames:colNamesData,
colModel:colModelHash,
寻呼机:“#寻呼机”,
rowNum:10,
行列表:[10,25,50100],
sortname:'小时',
排序器:“desc”,
viewrecords:是的,
editurl:“/data\u call.json”,
描述:“我的信息”,
},
数据:
});
jQuery(“#data_table”).jqGrid('navGrid','#pager',{del:false,add:true,edit:false},{},{},{},{});
变量详细信息=

在我看来,您可以使用JavaScript方法。 只需将该文本框的更改方法与该方法绑定即可。
检查该值,如果它包含任何无效字符,则将其重置为balnk(“”)并返回false。

在我看来,您可以使用JavaScript方法。 只需将该文本框的更改方法与该方法绑定即可。
检查该值,如果该值包含任何无效字符,则将其重置为balnk(“”)并返回false。

您可以将“drop”事件处理程序绑定到具有
edittype:“textarea”
的“description”列。要执行此操作,您可以包括以下内容的
dataEvents

editoptions: {
   dataEvents: [
       {
            type: 'drop',
            fn: function(e) {
                console.log('drop');
                if (e.originalEvent !== undefined &&
                    e.originalEvent.dataTransfer !== undefined &&
                    e.originalEvent.dataTransfer.getData) {

                    console.log("URL: "+e.originalEvent.dataTransfer.getData('URL'));
                    console.log("Text: "+e.originalEvent.dataTransfer.getData('Text'));
                    e.preventDefault();
                }
            }
       }
   ]
}

在代码中,控件中删除的URL和文本将显示在控制台上,并且将阻止删除。您可以根据
dataTransfer.getData('URL')
dataTransfer.getData('Text')返回的数据来阻止删除

您可以将“drop”事件处理程序绑定到具有
edittype:“textarea”
的“description”列。为此,您可以包括以下内容的
dataEvents

editoptions: {
   dataEvents: [
       {
            type: 'drop',
            fn: function(e) {
                console.log('drop');
                if (e.originalEvent !== undefined &&
                    e.originalEvent.dataTransfer !== undefined &&
                    e.originalEvent.dataTransfer.getData) {

                    console.log("URL: "+e.originalEvent.dataTransfer.getData('URL'));
                    console.log("Text: "+e.originalEvent.dataTransfer.getData('Text'));
                    e.preventDefault();
                }
            }
       }
   ]
}

在代码中,控件中删除的URL和文本将显示在控制台上,并且将阻止删除。您可以根据
dataTransfer.getData('URL')
dataTransfer.getData('Text')返回的数据来阻止删除

您应该包括客户端使用的JavaScript代码。如何实现您在问题中描述的功能非常重要。@oleg..Thanx..我刚刚为实现的想法提供了一个简短的代码..只需检查您是否需要包括客户端使用的JavaScript代码。它重要的是如何实现您在问题中描述的功能。@oleg..Thanx..我刚刚为实现的想法提供了一个简短的代码..只要检查您是否想建议客户端检查,您也可以进行一些服务器站点检查。如果有一些html字符,则在保存到DBI建议客户端检查之前将其转义ide检查您还可以进行一些服务器站点检查。如果有一些html字符,则在保存到数据库之前将其转义