2013-12-08 2 views
1

Я пытаюсь создать случайное число в текстовое поле. К сожалению, идентификаторы здесь не являются вариантом, поэтому я использую классы как идентификаторы. Я пробовал несколько вещей, но, похоже, не могу получить эту работу.Генерировать случайное число в текстовый ввод, используя javascript/jQuery

HTML для ввода:

<div class="productAttributeRow productAttributeConfigurableEntryNumbersOnlyText"> 
    <div class="productAttributeLabel"> 
     <label> 
      <span class="name"> 
       Hidden: 
      </span> 
     </label> 
    </div> 
    <div class="productAttributeValue"> 
     <input type="text" class="Field validation" value="" size="5" /> 
    </div> 
</div> 

Я попытался:

var randomnumber = Math.floor(Math.random() * 11) 
$('#BuyThis').click(function() { 
    $(".productAttributeConfigurableEntryNumbersOnlyText.productAttributeValue input[type=" 
    text "]").val(randomnumber); 
}); 

В приведенном выше сценарии #BuyThis является кнопка:

<a id="BuyThis" type="button" class="btn btn-small btn-warning" href="#product-options" data-toggle="modal"> 

Однако, это не обязательно это произойдет с щелчком, я просто хочу случайное число в поле перед отправкой формы.

Также судимым без щелчка:

$(function(){ 
    var randomnumber=Math.floor(Math.random()*11)  
    $('.productAttributeConfigurableEntryNumbersOnlyText.productAttributeValue input[type="text"]').val(randomnumber);  

}) 

Еще одна попытка:

function randomNumber(m, n) { 
    m = parseInt(m); 
    n = parseInt(n); 
    randomnumber = Math.floor(Math.random() * (n - m + 1)) + m; 
    ('.productAttributeConfigurableEntryNumbersOnlyText.productAttributeValue input[type="text"]').value = randomnumber; 
}); 

Пробовал различные другие функции и комбинации но безрезультатно.

+0

вы можете предоставить демо вашей проблемы.? –

ответ

3

DIV с классом productAttributeValue внутри productAttributeConfigurableEntryNumbersOnlyText, поэтому при выборе следует добавить пробел между ними:

$(function(){ 
    var randomnumber=Math.floor(Math.random()*11)  
    $('.productAttributeConfigurableEntryNumbersOnlyText .productAttributeValue input[type="text"]').val(randomnumber);  
}); 

ли работа: http://jsfiddle.net/3hhCx/

+0

Ха-ха-ха ... Я смотрел на это, вероятно, полдюжины раз, но одновременно делал миллион вещей и продолжал забывать это делать. Duh! Благодарю вас большое спасибо. Я работаю над этим гораздо дольше, чем следовало бы, очень рад видеть работу. Благодаря! ~ Susan – susan

2
$('.productAttributeConfigurableEntryNumbersOnlyText.productAttributeValue') 

выбирает элемент, который имеет как.productAttributeConfigurableEntryNumbersOnlyTextи.productAttributeValue.

Вы хотите выбрать элемент, в котором есть .productAttributeValue, который является дочерним по отношению к .productAttributeConfigurableEntryNumbersOnlyText.

Чтобы сделать это, добавьте пробел между ними:

$('.productAttributeConfigurableEntryNumbersOnlyText .productAttributeValue') 

Чтобы вставить случайное значение, использование:

var randomnumber=Math.floor(Math.random()*11)  
$('.productAttributeConfigurableEntryNumbersOnlyText .productAttributeValue input[type="text"]').val(randomnumber); 
1

попробовать это ... HTML

<div class="productAttributeRow productAttributeConfigurableEntryNumbersOnlyText"> 
    <div class="productAttributeLabel"> 
     <label> 
      <span class="name"> 
       Hidden: 
      </span> 
     </label> 
    </div> 
    <div class="productAttributeValue"> 
     <input type="text" class="Field validation" value="" size="5" /> 
    </div> 

javascript:

var randomnumber=Math.floor(Math.random()*11)  

$('#BuyThis').click(function(){  
    $(".productAttributeConfigurableEntryNumbersOnlyText .productAttributeValue input:text").val(randomnumber); 
}); 

попробовать Demo

Смежные вопросы