2010-03-10 4 views
0

Je n'avais qu'une seule fonction pour ajouter une autre ligne à la table id = "tblOtherParties" et j'ai bien fonctionné, mais lorsque j'ai ajouté la deuxième fonction pour faire la même chose avec la table id = " tblHospitalAction "J'obtiens l'erreur de chaîne non terminée, mais je ne vois pas pourquoi c'est la même chose que la première fonction.Jquery Deux fonctions pour créer un problème de ligne

Toute aide serait grandement appréciée.

Je possède les fonctions suivantes

<script type="text/javascript"> 
var counter = 1; 
    function createNewRow (text1,text2){ 
    var first = counter++; 
    $('#tblOtherParties > tbody').append('<tr><td> 
    <input type="text" id="txtName_'+first+'" value="'+text1+'" /> 
    </td><td> 
    <input type="text" id="txtRole_'+first+'" value="'+text2+'" /> 
    </td><td> 
    <a class="deleteBtn"/> 
    </td></tr>'); 
    } 



var counterHA = 1; 
function createNewRowHA (text1,text2){ 
    var first = counterHA++; 
    $('#tblHospitalAction > tbody').append('<tr> 
    <td> 
    <input type="text" id="txtH_'+first+'" value="'+text1+'" /> 
    </td> 
    <td> 
    <input type="text" id="txtA_'+first+'" value="'+text2+'" /> 
    </td><td><a class="deleteBtn"/></td> 
    </tr>'); 
    } 

    $(document).ready(function(){ 
    $(".deleteBtn").live("click", function(){ 
    $(this).closest('tr').not(':only-child').remove(); 
    }); 

    $('#btnAddOther').click(function() { 
    createNewRow('',''); 
    }); 

    $('#btnAddHA').click(function() { 
    createNewRow('',''); 
    }); 

}); 
</script> 

Et les tableaux ci-dessous

<div > 
    <span style="float:left;padding-top:34px;"><b>Other involved parties</b></span> 
    <table style="float:left;" id="tblOtherParties"> 
    <thead> 
    <tr> 
    <td class="title">Name</td> 
    <td class="title">Role</td> 
    <td><input type="button" id="btnAddOther" value="Add"/></td> 
    </tr> 
</thead> 
    <tbody> 
    <tr> 
    <td><input type="text" id="txtName_0" size="35"/></td> 
    <td><input type="text" id="txtRole_0" size="35"/></td> 
    <td><a class="deleteBtn" /></td> 
    </tr> 
    </tbody> 
</table> 
</div> 

<div > 
    <span style="float:left;><b>Other involved parties</b></span> 
    <table style="float:left;" id="tblHospitalAction"> 
    <thead> 
    <tr> 
    <td class="title">Name</td> 
    <td class="title">Role</td> 
    <td><input type="button" id="btnAddHA" value="Add"/></td> 
    </tr> 
</thead> 
    <tbody> 
    <tr> 
    <td><input type="text" id="txtH_0" size="35"/></td> 
    <td><input type="text" id="txtA_0" size="35"/></td> 
    <td><a class="deleteBtn" /></td> 
    </tr> 
    </tbody> 
</table> 
</div> 

Répondre

2

Vos chaînes couvrant plusieurs lignes dans votre source réelle ou vous ne juste les enjoliver à des fins d'affichage dans votre question? Les chaînes qui couvrent plusieurs lignes doivent être soit mis fin sur chaque ligne et concaténé à l'autre ou vous devez échapper au retour à la ligne:

// Unterminated string constant on the first line 
"this is a 
test string that spans multiple lines" 

// Escaping the newline character 
"this is a \ 
test string that spans multiple lines" 

// Concatenating each line: 
"this is a " 
+ "test string that spans multiple lines" 

La plus grande différence entre le 2ème et le 3ème est que le 2ème gardera la newlines dans la chaîne, la troisième ne sera pas à moins que vous les ajoutiez manuellement en utilisant \n ou \r\n. L'inconvénient de la seconde est que TOUS les autres caractères d'espaces (espaces, tabulations, etc.) entre les délimiteurs de chaînes font partie de la chaîne ce qui rend difficile le maintien de votre code.

Questions connexes