2016-09-13 3 views
-1

Ich möchte jeden der ausgewählten Optionswerte groß schreiben, der von Sql kommt. Jetzt , der folgende Code funktioniert gut - aber nur auf dem ersten Feld ...Führen Sie die Jquery-Funktion für jedes Feld aus

function capitalize(str){ 
var text = str.text().replace(/^(.)|\s(.)/g, function($1){ return $1.toUpperCase(); }); 
return str.text(text); 
}capitalize($('#op')); 

Meine Html Felder sind in etwa so aussieht (ich arbeite mit PUG/JADE und dies ist mein Bestes für den Versuch zu konvertieren zu Demonstrationszwecken):

<select class="select_input"> 
<option value=$emp['id'] id="op" selected="selected">$emp['value']</option>* 
<?php foreach ($type as $type_val) ?> 
<option value=$type_val['id']>$type_val['val']</option> 
<?php endforeach?> 

<select class="select_input"> 
<option value=$emp['id'] id="op" selected="selected">$emp['value']</option>* 
<?php foreach ($type as $type_val) ?> 
<option value=$type_val['id']>$type_val['val']</option> 
<?php endforeach?> 
  • Der erste Wert, der von der DB kommt.

Wie bereits erwähnt, wird das Skript nur auf dem ersten Feld läuft ...

+0

Warum kapitulieren Sie nicht auf der Serverseite? – user489872

+0

ID sollte eindeutig sein. Verwenden Sie '$ ('. Select_input option'). Text (Funktion (i, t)) {return t.replace (/^(.) | \ S (.)/G, Funktion ($ 1) {return $ 1.toUpperCase() ;}}); ' – Tushar

Antwort

1

Sie verwenden id in der falschen Richtung. Jede ID muss für die HTML-Seite eindeutig sein.

// will work only for first object 
capitalize($('#op')) 

Try-Klassen zu verwenden, anstatt

<select class="select_input"> 
<option value=$emp['id'] id="op" class="option" selected="selected">$emp['value'] </option>* 
<?php foreach ($type as $type_val) ?> 
<option value=$type_val['id'] class="option">$type_val['val']</option> 
<?php endforeach?> 


capitalize($(".option")) 
+0

aleksv - Das war meine erste Option ... aber es ist etwas kompliziert, weil ich die Methoden eines bestimmten Projekts verwende, die nicht geändert werden können .... Sensei James - Danke - leider schafft es das ein anderes Problem ... jetzt bekomme ich das ganze Array in jedem Feld .. anstatt es ist ein Wert ..... – user3387719

+0

Ich aktualisierte meine Antwort, Sie brauchen JS überhaupt nicht. –

0

Sie können nur CSS verwenden, um jede Drop-Down-Element zu nutzen:

#op > option { 
    text-transform: capitalize; 
} 
0

Verstanden .... keinen anderen Weg, dann Server Seite leider

public function capitalize($arr) 
    { 
    foreach ($arr as $key => $val) { 
     $data[$key] = ucfirst($val); 
    } 

     return $data; 
    }//end capitalize() 
Verwandte Themen