2017-04-10 21 views
-4

前檢查的價值我得到了以下HTML:的jQuery得到檢查無線輸入這是不

<input type="radio" name="eingangstuer_pfostenbefestigung" value="Zum Einbetonieren" /> 
<input type="radio" name="eingangstuer_pfostenbefestigung" value="Zum Einduebeln" /> 

亞特我檢查他們中的一個,並試圖用獲得的價值:

$("input[name=eingangstuer_pfostenbefestigung]:checked").val(); 

我得到NaN,它只在其中一個值被選中之前有效。有什麼解決方案的js bug nr。 666?

當我讀它的原代碼短得多,但基本相同的方式簡化它,它工作正常:

<input type="radio" name="eingangstuer_pfostenbefestigung" value="Zum Einbetonieren" /> 
<input type="radio" name="eingangstuer_pfostenbefestigung" value="Zum Einduebeln" /> 
<div style="" onclick="bla();">bla</div> 

<script language="javascript" type="text/javascript"> 

function bla(){ 
    bla = $("input[name=eingangstuer_pfostenbefestigung]:checked").val(); 
    alert(bla); 
} 
</script> 

哎呀我不知道現在該做什麼:/我也得到其他從其他無線輸入值,這樣在組織代碼,但他們prechecked所以它工作正常,只有當我要檢查他們點擊bla之前手動它不工作

enter image description here

anzahl = $("input[name=eingangstuer_anzahl]").val(); 
muster = $("input[name=eingangstuer_muster]:checked").val(); 
breite = $("input[name=eingangstuer_breite]").val(); 
gesamtlaengeelement = breite * anzahl/100; 
hoehe = $("input[name=eingangstuer_hoehe]").val() - $("input[name=eingangstuer_bodenfreiheit]").val(); 
form = $("input[name=eingangstuer_form]:checked").val(); 
form = form.replace('eingangstuer_form_konvex', 'Konvex').replace('eingangstuer_form_normal', 'Normal').replace('eingangstuer_form_konkav', 'Konkav'); 
farbe = $("input[name=eingangstuer_farbe]:checked").val(); 
oeffnung = $("input[name=eingangstuer_oeffnung]:checked").val(); 
quadratmeter = breite * hoehe; 


    $.extend(true, artikel,{ 
     [currentid]:{"anzahl":anzahl, 
     "art":"Eingangstür", 
     "betriebsart": "manuel", 
     "muster": muster, 
     "gesamtlaengeelement": gesamtlaengeelement, 
     "hoehe": hoehe, 
     "form": form, 
     "farbe": farbe, 
     "oeffnung": oeffnung} 
    }); 



if(form == 'Normal') 
{ 
    if(muster == 'L3 Modern') 
    { 
     multiplikator = 0.35; 
    } 
} 

if(form == 'Konkav') 
{ 
    if(muster == 'L3 Modern') 
    { 
     multiplikator = 0.4; 
    } 
} 

if(form == 'Konvex') 
{ 
    if(muster == 'L3 Modern') 
    { 
     multiplikator = 0.4; 
    } 
} 

endpreis = quadratmeter * multiplikator * anzahl; 
endpreis = endpreis/10; 



if(endpreis < 350) 
{ 
    endpreis = 350; 
} 


if($('input[name="eingangstuer_e_oeffner"]:checked').length > 0) 
{ 
    $.extend(true, artikel,{ 
     [currentid]:{"zubehoer": "E-&Ouml;ffner"} 
    }); 

    oeffnerpreis = 65 * anzahl; 
    endpreis = endpreis + oeffnerpreis; 
} 





pfostenanzahl = $("input[name=eingangstuer_pfosten_anzahl]").val(); 
if(pfostenanzahl > 0) 
{ 
    $('#info_pfosten_anzahl').text(pfostenanzahl); 
    $('#info_pfosten_art').html('T&uuml;rpfosten'); 
    $('#info_pfosten_farbe').text(farbe); 


    pfostenmasse = $('#eingangstuer_pfosten_masse').find(":selected").val(); 

    pfostenlaenge = $("input[name=eingangstuer_pfosten_laenge]").val(); 

    $.extend(true, artikel,{ 
     [currentid]:{"pfostenmasse": pfostenmasse + 'x' + pfostenlaenge} 
    }); 

    $('#info_pfosten_masse').text(pfostenmasse + 'x' + pfostenlaenge); 


    befestigung = $("input[name=eingangstuer_pfostenbefestigung]:checked").val(); 

因此,這裏是需要前值函數的整個代碼。如上所述:爲什麼當我預先檢查該死的eingangstuer_pfostenbefestigung時它工作正常?

+0

你怎麼嘗試讀取值?它是否提交,點擊或其他內容?就目前而言,它們都沒有被檢查,所以'$(「input [name = eingangstuer_pfostenbefestigung]:checked」)'爲空。 – Manngo

+0

你是怎麼看我的價值的人?像alert($(「input [name = eingangstuer_pfostenbefestigung]:checked」));例如?? 「就目前來看,他們都沒有被檢查」,正如我在檢查其中一個後所說的那樣,我沒有得到任何價值 –

+0

何時你想獲得價值? 你能提供更詳細的代碼嗎? – Calvin

回答

0

我找到了該死的答案。 此功能使所有的麻煩和浪費了5個小時我的時間:

$("input").change(function(e) { 
     var $this = $(this); 
     var val = parseInt($this.val()); 
     var max = parseInt($this.attr("max")); 
     var min = parseInt($this.attr("min")); 

     var voreinstellung = parseInt($this.data("voreinstellung")); 

     if(val >= min && val <= max) 
     { 

     } 
     else 
     { 
       if (val > max) 
       { 
       e.preventDefault(); 
       $this.val(max); 
       } 
       else if (val < min) 
       { 
       e.preventDefault(); 
       $this.val(min); 
       } 
     } 

     if(val > 0) 
     { 

     } 
     else 
     { 
      e.preventDefault(); 
      $this.val(voreinstellung); 
     } 
}); 

所以我把它chaned到$('input[type=number]') F的JavaScript的