我尝试使用PHP,HTML和jQuery的组合创建比较页面/表单。我喜欢创建的理想效果如下
<form>
left | right
[text1.l] | [text1.r]
[text2.l] | [text2.r]
submit
</form>
其中[]
表示输入文本框。对于特定用例,用户选择将为每行选择左或右文本框并发布表单。基本上我只对处理表单时选择的文本框的值感兴趣。
我在考虑使用单选按钮,因为我只允许每行选择一个方框,但我不确定如何将其设置为检索文本框值。
任何帮助都会受到赞赏,欢呼。
答案 0 :(得分:0)
JSFIDDLE http://jsfiddle.net/Bq8AF/
<强>表格强>
<form method="post" action="process.php" class="form">
<fieldset id="left">Left
<input type="text" name="foo-left-1" size="50" />
<input type="text" name="foo-left-2" size="50" />
</fieldset>
<fieldset id="right">Right
<input type="text" name="foo-right-1" size="50" />
<input type="text" name="foo-right-2" size="50" />
</fieldset>
<input type="submit" value="Submit">
</form>
JS + jQuery
$("input[type=text], textarea").focus(function(){
// Check for the change from default value
if(this.value == this.defaultValue){
this.select();
}
// get the name of the field, e.g. foo-left-1
//alert(this.name);
var fieldNameSplitted = this.name.split("-");
// recombine + switch "left" to "right" and vice versa
var fieldNameOtherSide = '';
// the ident remains the same (e.g. foo-)
var fieldNameOtherSide = fieldNameSplitted[0] + "-";
// left/right switch (e.g. foo-left, gets foo-right and vv)
if(fieldNameSplitted[1] == 'left') { fieldNameOtherSide += 'right-'; }
if(fieldNameSplitted[1] == 'right') { fieldNameOtherSide += 'left-'; }
// row number (e.g. foo-right-2)
fieldNameOtherSide += fieldNameSplitted[2];
// now we have the name of the field on the other side of the row, right?
//alert(fieldNameOtherSide);
// use that as jQuery selector and disable the element
// because the user has selected the other one
// and when the form is send disabled fields will not be send
// http://www.w3.org/TR/html401/interact/forms.html#disabled
$('input[name=' + fieldNameOtherSide + ']').prop("disabled", true);
});
用户通过点击选择文本框。
当&#34;提交&#34;单击,浏览器将仅发送未禁用的字段。 $ _POST数组将只包含所有未禁用字段的值。
当用户输入此内容时:
你会得到$_POST['foo-right-1'] = 'car'
和$_POST['foo-left-2'] = 'dog'
。