我需要将单选按钮的值收集到数据库中,但我还需要根据所选的单选按钮收集另一个值。这些值很少会发生变化,因此拥有前端解决方案似乎还有很长的路要走。下面的代码可以正常工作,但我觉得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');
}
答案 0 :(得分:1)
我会先用两个目标修改你的html ......
为每个单选按钮设置一个字段,以便您在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'
属性等。
设置一种在jQuery中轻松选择所有单选按钮的方法。例如,一个班级。
我现在没有铁轨,但我想这很容易做到。这个想法是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;));