Předejte více hodnot pomocí odkazu onClick v HTML

Pokud valuationId a user jsou proměnné JavaScriptu a zdrojový kód je prostý statický HTML, negenerovaný žádnými prostředky, měli byste zkusit:

<a href=# onclick="return ReAssign(valuationId,user)">Re-Assign</a>

Pokud jsou generovány z PHP a obsahují řetězcové hodnoty, použijte uvozovky každého proměnné, jako je tato:

<?php
    echo '<a href=# onclick="return ReAssign(\'' + $valuationId + '\',\'' + $user + '\')">Re-Assign</a>';
?>

Logika je podobná aktualizovanému kódu v otázce, který generuje kód pomocí JavaScriptu (možná pomocí jQuery?):nezapomeňte použít uvozovky každý proměnná:

var user = element.UserName;
var valuationId = element.ValuationId;
$('#ValuationAssignedTable').append('<tr> <td><a href=# onclick="return ReAssign(\'' + valuationId + '\',\'' + user + '\')">Re-Assign</a> </td>  </tr>');

Morálka příběhu je

'someString(\''+'otherString'+','+'yetAnotherString'+'\')'

Bude vyhodnoceno jako:

someString('otherString,yetAnotherString');

Vzhledem k tomu, že byste potřebovali:

someString('otherString','yetAnotherString');

Řešení:Předejte více argumentů pomocí onclick pro html generovaný v JS

Pro html generovaný v JS postupujte jak je uvedeno níže (používáme jednoduchý obalový řetězec asstringu). Každý argument musí být zabalen do jediné uvozovky, jinak bude celý váš argument považován za jeden argument likefunctionName('a,b') , nyní jeho jeden argument s hodnotou a,b.

K uzavření prvního argumentu jednoduchou uvozovkou musíme použít znak escape řetězce zpětné lomítko(), mezi něž vložíme oddělovací čárku a potom začneme další argument jednoduchou uvozovkou. (Toto je magický kód pro použití '\',\'' )

Příklad:

$('#ValuationAssignedTable').append('<tr> <td><a href=# onclick="return ReAssign(\'' + valuationId  +'\',\'' + user + '\')">Re-Assign</a> </td>  </tr>');

 $Name= "'".$row['Name']."'";
  $Val1= "'".$row['Val1']."'";
  $Year= "'".$row['Year']."'";
  $Month="'".$row['Month']."'";

 echo '<button type="button"   onclick="fun('.$Id.','.$Val1.','.$Year.','.$Month.','.$Id.');"  >submit</button>';