2013-11-27 4 views
-2

Мне нужно разделить число в 3 разных числах, после чего мне нужно передать это значение на переключатель. это код, который у меня есть. У меня есть сценарий для захвата значения с помощью переключателя, но не для его изменения.Значение радиоизменения jquery change from div input

//Radio And Div 
    <input type="radio" name=presets class="m" value=""> 
     <div id="choice_month" class="m"></div> 
    <input type="radio" name=presets class="q" value=""> 
     <div id="choice_quart" class="q"></div> 
    <input type="radio" name=presets class="y" value=""> 
     <div id="choice_year" class="y"></div> 

JQuery для разделения:

$("#p").click(function() { 
    var num1 = $("input[id='amount']").val(), 
    num2 = $("input[id='m']").val(), 
    result = parseFloat(num1, 10)/parseFloat(num2, 10); 
mm = result.toFixed(2); 
    $(".m").text(mm);//Do stuff when the button is clicked. 
    var num3 = $("input[id='amount']").val(), 
    num4 = $("input[id='q']").val(), 
    result = parseFloat(num3, 10)/parseFloat(num4, 10); 
    mm = result.toFixed(2); 
    $(".q").text(mm); 
    var num5 = $("input[id='amount']").val(), 
    num6 = $("input[id='y']").val(), 
    result = parseFloat(num5, 10)/parseFloat(num6, 10); 
    mm = result.toFixed(2); 
    $(".y").text(mm); 
     }); 
+2

ID должен быть уникальным и предпочтительно не содержать цифры. Кроме того, ваш jQuery фактически не использует ни один из идентификаторов/классов, используемых в вашем HTML ... – lifetimes

+1

Вы также не можете иметь пробелы в своих идентификаторах:) – Moob

+0

Можете ли вы создать [JSFiddle] (http: // jsfiddle. net /) для нас? – Moob

ответ

1

Я немного потерял ваш код this DEMO. Он неустановлен, но делает то, что вы просите.

$("#button").click(function() { 
    $("#amount").trigger("change"); 
}); 

$("#amount").change(function() { 
    var num1 = $("input[id='amount']").val(), 
     num2 = $("input[id='m']").val(), 
     num3 = $("input[id='q']").val(), 
     num4 = $("input[id='y']").val(), 
     result = 0; 

    result = parseFloat(num1, 10)/parseFloat(num2, 10); 
    $("#choice_m").text(result.toFixed(2)); 

    result = parseFloat(num1, 10)/parseFloat(num3, 10); 
    $("#choice_q").text(result.toFixed(2)); 

    result = parseFloat(num1, 10)/parseFloat(num4, 10); 
    $("#choice_y").text(result.toFixed(2)); 

    $("input[name='presets']:first").trigger("change");//trigger our on-change event in case the radio has been selected BEFORE the button was clicked. 
}); 

$("input[name='presets']").change(function() { 
    var id = "#choice_"+$("input[name='presets']:checked").attr("id"); 
    $("#result").val($(id).text()); 
}) 
+0

Так чисто. !! Я пытался смешать еще один дополнительный код, который у меня есть. – user1819551

0

Пожалуйста, изменить класс с идентификатором, так как этот способ HTML не является законным (используя тот же идентификатор для различных элементов)

<input type="radio" name="presets" class="m" value=""> 

Ваш DIV является следующим:

<div id="choice_month" class="m"></div> 

Попробуйте это:

$('div').click(function() { 
    $('input[type=radio]').attr('value', $(this).attr('class')); 
} 

Это позволит получить идентификатор div при нажатии на нее, а затем добавить, что к значению радио-кнопки.

+2

Я не понимаю этого ответа. – Moob

+0

Мне нужно передать значение class = "m" в значение радио. – user1819551

+0

Вы можете видеть в коде, класс «div», который был нажат, передается в 'значение' кнопки« radio »через параметр. Он просто изменяет значения атрибутов элементов. Он должен работать .. –