Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

253
Views
¿Cómo pasar "obj" a updateFinalTermScore (obj1) en la función onblur?

Estoy usando Datatables e intento completar la tabla de datos a través de una llamada ajax. En la tabla de datos, he agregado una funcionalidad de cuadro de texto para que los usuarios puedan cambiar el valor de las calificaciones finales. Una vez que el usuario ha cambiado el valor de las calificaciones finales, quiero usar una función onblur para guardar ese nuevo valor de calificaciones finales en la base de datos. Así que tengo que pasar rosterID y nuevas marcas finales a la función onblur. Pero no sé cómo pasar 2 parámetros en esto. He decidido pasarle un objeto llamado "obj". Pero no pasa en absoluto a la función y el parámetro formal de la función "obj1" parece indefinido. Aquí está mi código.

 // piece of code from my datatables AJAX call. { data: 'SrNo', title: "Sr No" }, // 0 { data: 'RosterID', title: "Roster ID", visible: false }, // 1 { data: 'RollNo', title: "Roll No" }, // 2 { data: 'StudentName', title: "Student Name" }, // 3 { data: 'FinalScore', title: "Final Score", //4 render: function (data, type, full, row) { var obj = { ros: full.RosterID, final: full.FinalScore } return '<input class="form-control" id="DTFinalaTermMarks" name="DTFinalaTermMarks" type="text" onblur="updateFinalTermScore('+obj+');" value = ' + data + ' >'; } }, { data: 'WeightedScore', title: "Weighted Score"}, //5 // function with formal parameter function updateFinalTermScore(obj1) { var roterID = obj1.ros; alert("hi"); } ``` kindly help.
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El objeto que necesitas usar es this .

 updateFinalTermScore(this)

En el contexto de un evento como onblur , creado en un renderizador de columnas, tendría el siguiente aspecto:

 { title: "Salary", data: "salary", render: function (data, type, row, meta) { return '<input class="form-control" id="DTFinalaTermMarks" ' + 'name="DTFinalaTermMarks" type="text" ' + 'onblur="updateFinalTermScore(this, ' + '\'' + row.RosterID + '\'' + ');" ' + 'value = ' + data + ' >'; } }

La declaración de return usa la concatenación de cadenas para crear el HTML requerido.

El objeto this representa el contexto del evento onblur , el nodo para el que ocurrió el evento. En este caso, ese es el elemento <input> relevante.

Debe utilizar este enfoque para poder acceder al valor del elemento <input> , que puede haber sido actualizado por el usuario antes del evento onblur .

El HTML resultante creado por la función de procesamiento de DataTables es:

 <input class="form-control" id="DTFinalaTermMarks" name="DTFinalaTermMarks" type="text" onblur="updateFinalTermScore(this, '123');" value="456">

Aquí, 123 es el ID de la lista. Supongo que este es un valor de cadena, por lo que uso '\'' para encerrar ese valor entre comillas simples.

Cuando ocurre el evento onblur , updateFinalTermScore puede acceder al nodo representado por this y extraer el valor proporcionado por el usuario usando la función jQuery val() :

 function updateFinalTermScore(node, salary) { console.log( $( node ).val() ); console.log( RosterID ); }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!