2017-08-16 4 views
0

Dies ist mein laravel Ansichtscode. Hier versuche ich, den Zählerwert zu erhöhen (dh, Wert = "0/5"). Ich habe die Eingabefelder innerhalb des Modales und wenn ich auf die Speichern-Schaltfläche innerhalb des Modells klicke, sollte der Wert basierend auf den gefüllten Eingabefeldern erhöht werden.ie (1/5..2/5 ..)Wie wird der Zählerwert erhöht, wenn das Eingabefeld gefüllt ist?

ich habe versucht, diese Zähler zu erhöhen value.but es zeigt NaN

var val; 
 
$("input").click(function() { 
 
    val = $('#counter').val(); 
 
    val++; 
 
    $('#counter').prop('value', val) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="panel-title pull-left"> 
 
    <i class="fa fa-check-circle" style="font-size:20px;color:lightgreen"> 
 
    </i> Price,stock and Shipping Information<input type="submit" id="counter" value="0/5" style="background-color: transparent; border:none"> 
 
</div>

+0

Ändern Sie den Wert Attribut von "0/5" auf "0" und versuchen Sie es erneut. – tibetty

+0

Das funktioniert !! aber ich will es als 0/5 und muss '0' durch den Zähler ersetzen –

+0

Sie bedeutet 0 von 5? – tibetty

Antwort

1
<script type="text/javascript"> 
    $("input").click(function() { 
     let val = parseInt($('#counter').val().split('/')[0]); 
     $('#counter').prop('value', `${++val}/5`); 
    }); 
</script> 
+0

Entschuldigung, keine Inkremente statt –

+0

mein Fehler, versuchen Sie es erneut. – tibetty

+0

Wenn Sie 0-5 als Karussell verwenden möchten, ersetzen Sie einfach $ {++ val} durch $ {++ val% 6}. – tibetty

1

Eigentlich Ihr Code funktioniert gut. Da Sie die Ansicht in einem Modal haben, das nur bei einem Klickereignis angezeigt oder angezeigt wird, sollten Sie die Methode jQuery "on" verwenden, um die Click-Handler-Funktionsdefinition zu verbessern. In diesem Fall sollten Sie Ihren Code haben Arbeits

var val; 
 
$(document).on('click','#counter',function() 
 
{ 
 
    val = $('#counter').val(); 
 
    val++; 
 
    $('#counter').prop('value',val) 
 
});
<div class="panel-title pull-left"> 
 
<i class="fa fa-check-circle" style="font-size:20px;color:lightgreen"> 
 
</i> 
 
Price,stock and Shipping Information<input type="submit" id="counter" 
 
**value="0/5"** style="background-color: transparent; border:none"> 
 
    </div> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

+0

Ihr Code wird nicht funktionieren, wenn Wert ist etwas anderes als 0/5 zum Beispiel 5/15 –

1

Sie reguläre Ausdrücke Daten zu analysieren, bevor / Charakter

var val; 
$("input").click(function() { 
    val = $('#counter').val(); 
    qty = val.match(/[^/]*/i)[0]; 
    qty++; 
    $('#counter').prop('value', qty) 
}); 
+0

Es ersetzt den Wert vollständig. Ich möchte nur so wie 1/5.2/5 –

+0

inkrementieren sagte Sie Inkrement Wert, so dass ich es erhöht –

1

Wenn Sie diese 1/5..2/5 .Verwendung wollen erhöhen können split und nur den oberen Wert erhöhen.

var val; 
 
$("input").click(function() { 
 
    val = $('#counter').val().split("/"); 
 
    //check eqal value with base 
 
    if(val[0] == val[1]) { 
 
    return false; 
 
    } 
 
    val[0]++; 
 
    
 
    $('#counter').prop('value', val[0]+"/"+val[1]); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="panel-title pull-left"> 
 
    <i class="fa fa-check-circle" style="font-size:20px;color:lightgreen"> 
 
    </i> Price,stock and Shipping Information<input type="submit" id="counter" value="0/5" style="background-color: transparent; border:none"> 
 
</div>

0

Hier ist Ihre Lösung:

$("input").click(function() { 
    var val = $('#counter').val(); 
    $('#counter').prop('value', `${++val % 6}/5`); 
}); 

und eine Arbeits Geige:

https://jsfiddle.net/wv2x0mx5/4/

1

Sie auch diese versuchen können.

$("#counter").on("click",function(){ 
 
    var counterBtn = document.getElementById("counter"); 
 
    var count = counterBtn.value; 
 
    //alert(count.split("/")[0]); 
 
    count = count.split("/"); 
 
    counterBtn.value = ((parseInt(count[0])+1)%(parseInt(count[1])+1))+"/"+count[1]; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="panel-title pull-left"> 
 
    <i class="fa fa-check-circle" style="font-size:20px;color:lightgreen"> 
 
    </i> Price,stock and Shipping Information<input type="submit" id="counter" value="0/5" style="background-color: transparent; border:none"> 
 
</div>

Verwandte Themen