使用jQuery检查单选按钮时,保存隐藏字段和无线电输入值的值

时间:2017-10-15 05:43:43

标签: javascript jquery html

我需要将单选按钮的值收集到数据库中,但我还需要根据所选的单选按钮收集另一个值。这些值很少会发生变化,因此拥有前端解决方案似乎还有很长的路要走。下面的代码可以正常工作,但我觉得jQuery函数可以很好地结合起来。有没有办法将这四种功能合并为一个功能?

我的表单数据

...
<%= f.radio_button :plaque_size, '16" x 8"' %> 16" x 8" / $1,800 Donation
<%= f.radio_button :plaque_size, '12" x 8"' %> 12" x 8" / $1,500 Donation
<%= f.radio_button :plaque_size, '8" x 8"' %> 8" x 8" / $1,200 Donation

<%= f.text_field :plaque_cost, class: 'hidden' %>
...

的jQuery

$(function () {
  $('#plaqueorder_plaque_size_16_x_8').change(plaque_size_16_x_8);
  $('#plaqueorder_plaque_size_12_x_8').change(plaque_size_12_x_8);
  $('#plaqueorder_plaque_size_8_x_8').change(plaque_size_8_x_8)
});

function plaque_size_16_x_8() {
  $('#plaque_cost').val('180000');
}
function plaque_size_12_x_8() {
  $('#plaque_cost').val('120000');
}
function plaque_size_8_x_8() {
  $('#plaque_cost').val('95000');
}

2 个答案:

答案 0 :(得分:1)

我会先用两个目标修改你的html ......

  1. 为每个单选按钮设置一个字段,以便您在jQuery代码中获取相应的捐赠金额。您可以设置def labelizeReviews(reviews, label_type): labelized = [] for index, review in enumerate(reviews): label = ' %s_%s ' % (label_type, index) labelized.append(LabeledSentence(review, [label])) return labelized x_train = labelizeReviews(x_train, 'TRAIN') # input x_train is a list of word lists, each word list is a list of tokens of all words in one document x_train=np.array(x_train) model_dm = gensim.models.Doc2Vec(alpha=0.025, min_alpha=0.0001, iter=10, min_count=5, window=10, size=size, sample=1e-3, negative=5, workers=3) for epoch in range(10): perm = np.random.permutation(x_train.shape[0]) model_dm.train(x_train[perm], total_examples=model_dbow.corpus_count, epochs=model_dbow.iter) 属性或Exception in thread Thread-4: Traceback (most recent call last): File "C:\Users\123\Anaconda2\lib\threading.py", line 801, in __bootstrap_inner self.run() File "C:\Users\123\Anaconda2\lib\threading.py", line 754, in run self.__target(*self.__args, **self.__kwargs) File "C:\Users\123\Anaconda2\lib\site-packages\gensim-2.1.0-py2.7-win-amd64.egg\gensim\models\word2vec.py", line 857, in job_producer sentence_length = self._raw_word_count([sentence]) File "C:\Users\123\Anaconda2\lib\site-packages\gensim-2.1.0-py2.7-win-amd64.egg\gensim\models\doc2vec.py", line 729, in _raw_word_count return sum(len(sentence.words) for sentence in job) File "C:\Users\123\Anaconda2\lib\site-packages\gensim-2.1.0-py2.7-win-amd64.egg\gensim\models\doc2vec.py", line 729, in <genexpr> return sum(len(sentence.words) for sentence in job) AttributeError: 'numpy.ndarray' object has no attribute 'words' 属性等。

  2. 设置一种在jQuery中轻松选择所有单选按钮的方法。例如,一个班级。

  3. 我现在没有铁轨,但我想这很容易做到。这个想法是html结果看起来与此类似......

    value

    然后,您可以在一个jQuery事件函数中执行您想要的操作...

    data-donation

    如果您出于其他目的需要<input type="radio" class="rbdonation" value="180000"... <input type="radio" class="rbdonation" value="120000"... <input type="radio" class="rbdonation" value="95000"... 字段,则可以使用$('input.rbdonation').change(function() { $('#plaque_cost').val(this.value); }); 属性...

    HTML:

    value

    JQUERY:

    data-*

答案 1 :(得分:-1)

为什么不制作一个plaque_size函数并传入您想要的值而不是转换?如果你这样做,你将只有一个功能:

function plaque_size (size) {
  $('#plaque_cost').val (size);
} 

并称之为:

$(&#39;#plaqueorder_plaque_size_16_x_8&#39;)。change(plaque_size(&#39; 180000&#39;));