0

私は自分のページでレールHtmlコードを取得するためにjqueryを使用しています..だから私はこのコードを使用しています:-

$("#but").html( ''+
    '<div class = "newb">'+
        '<table>'+
            '<tr>'+

                '<%= link_to "Add a Patient", "/outpatient_detail",:class=>"btn btn-primary",:style=>"color:white" %>'+
                '<%= form_tag("/PatientManagement/delete", method: "post",:id=>"testform") do %>'+
                '<%= text_field_tag "patientIdsDel",nil,:type=>"hidden" %>'+
                '<%= text_field_tag "hospitalId",current_user.hospital.id,:type=>"hidden"%>'+
                '<%= text_field_tag "processType","outpatient",:type=>"hidden"%>'+
                '<%= text_field_tag "finalJson","",:type=>"hidden"%>'+
                '<%= text_field_tag "imppath",@pathimp[0],:type=>"hidden"%>'+
                '<%= text_field_tag "exportP",@pathimp[7],:type=>"hidden"%>'+
                '<%= submit_tag "Delete Selected",:id=>"2",:onclick => "return del()",:class=>"btn btn-primary"%>'+
                '<%end%>'+

            '</tr>'+
        '</table>'+
    '</div>'
     );

このコードは google chrome、safari では完全に機能しますが、FF、IE、Opera では機能しません。どうすれば解決できますか?その生成されたhtmlは次のとおりです:- ここに画像の説明を入力

私のデル()は

function del(){
        //alert("in del")
    var arl=document.getElementById("patientIdsDel").value=keys(arr);
  //alert(arl)
    var tempA = keys(arr)


    for(var i=0;i<tempA.length;i++){
        tempA[i]+'"'+":"+arr[tempA[i]]
    }


    var hid=document.getElementById("hospitalId").value;
    var ptype=document.getElementById("processType").value;
    //alert(ptype+hid)


     var jsonObj = {

             "hospitalId": hid,
             "processType":ptype
         };

    var patientIDs = {};

    for(var i=0;i<tempA.length;i++){

        patientIDs[tempA[i]] = arr[tempA[i]];

    }     


        jsonObj["patientIDs"]=patientIDs;
         var jsonString = JSON.stringify(jsonObj);

         // alert(jsonString)

         var ee= document.getElementById("patientIdsDel").value=jsonString;
    if(arl==0)
    {
        alert("No Records Selected")
        return false
    }else
    {


        return true
    }

  }

これが私のarrの説明です。どのように更新していますか

if(selected==true){
  if(arr[model.attributes.PatientId]==undefined)
  {

    arr[model.attributes.PatientId] =  "'"+model.attributes.MeasureCategory+"'";

  }  else
  {
    arr[model.attributes.PatientId]=arr[model.attributes.PatientId]+",'"+model.attributes.MeasureCategory+"'";

  } 




    // arr[model.attributes.PatientId] =  "'"+model.attributes.MeasureCategory+"'";



  }
  else if(selected==false){
    var str=arr[model.attributes.PatientId];
    var n =arr[model.attributes.PatientId].split(",");
    var len=n.length;
    if(len==1)
    {
        delete arr[model.attributes.PatientId];
        //alert(arr[model.attributes.PatientId])
    }
    else{
        for(i=0;i<=len;i++)
    {
        if(n[i]=="'"+model.attributes.MeasureCategory+"'")
        {
            if(i==len-1)
                str=str.replace(",'"+model.attributes.MeasureCategory+"'","");
            else
                str=str.replace("'"+model.attributes.MeasureCategory+"',","");

            arr[model.attributes.PatientId]=str;
            //alert(arr[model.attributes.PatientId])

        }
    }
    // alert(n[0]+","+n[1])
    // alert(model.attributes.MeasureCategory)



    }
4

1 に答える 1

0

del 関数に「構文」エラーがあるように感じます。

すべてのコードを貼り付けることができますか、 keys(arr) とは何ですか?

また、各行は ; で終わる必要があることに注意してください。ジャバスクリプトで。お使いのブラウザによっては、解釈できない場合やエラーが発生する場合があります。

var arr = new Array();
function del(){
var arl=document.getElementById("patientIdsDel").value=keys(arr);
var tempA = keys(arr);

for(var i=0;i<tempA.length;i++){
    tempA[i]+'"'+":"+arr[tempA[i]];
}

var hid=document.getElementById("hospitalId").value;
var ptype=document.getElementById("processType").value;

 var jsonObj = {

         "hospitalId": hid,
         "processType":ptype
     };

var patientIDs = {};

for(var i=0;i<tempA.length;i++){
    patientIDs[tempA[i]] = arr[tempA[i]];
}     


    jsonObj["patientIDs"]=patientIDs;
     var jsonString = JSON.stringify(jsonObj);

     var ee= document.getElementById("patientIdsDel").value=jsonString;
if(arl==0)
{
    alert("No Records Selected");
    return false;
}else
{
    return true;
}
}
于 2013-09-11T11:58:05.070 に答える