首先,请原谅我,因为我对JavaScript知之甚少,并且我试图在不知道正确的术语和语法的情况下制作一些东西。我在CMS中工作,名为" ViArt。"很多事情都是由php处理的,我只能在ViArt中访问,将JavaScript添加到列表框的onChange事件中。
以下是我想要完成的事情:
该产品是太阳镜。列表框1中的不同帧颜色由数字前缀指定。每种帧颜色有30种不同的镜头颜色选项,这些镜头颜色在列表框2中选择。
使用我当前的代码,对于每个帧,我必须在每个帧的JavaScript中输入并手动输入指定给该帧的数字前缀。
这是我在onChange事件中的当前工作代码:
=================================
var FrameNo = '01';//ENTER FRAME NUMBER
var ImagePath = 'images/GlassesBrand/Rx/GlassesTest/';//ENTER PATH TO IMAGES
var ImageNamePrefix = 'GlassesTest-XL';//ENTER NAMING CONVENTION
// This changes the IMAGE hyperlink to larger image to match user's selection
document.getElementById('blackImg').href=ImagePath + 'Large/' + ImageNamePrefix + '-Frame' + FrameNo + '-Lens' +
this.form.property{form_id}_{property_id}.options[this.form.property{form_id}_{property_id}.selectedIndex].text.substrin g(0,2) + '.jpg';
================================= 我想做的改变是,我不想要硬编码#34; FrameNo。"我想通过查找listbox 1的selectedIndex在onChange事件中动态调用它。
=============================
在名单" {property_id},"我正在尝试获取列表框1的selectedIndex,名为" {property_parent_id6385_6773}"
{form_id}值为6385
{property_id}是列表框2,在此示例中,值为6773
{property_parent_id6385_6773}的值为6765,在此示例中,这是指listbox 1
{property_parent_id6385_6773}由php脚本或其他东西动态命名。例如,在下一个表单中,可以将其称为{property_parent_id6400_6800}。因此,我尝试根据我正在使用的任何表单和列表框,对JavaScript进行编程以动态引用property_parent_id #### _ ####。
当我对其进行硬编码或半硬编码以进行测试时,以下方法有效:
this.form.property6385_6765.selectedIndex;
和
this.form.property{form_id}_6765.selectedIndex;
我不知道语法,所以我认为在变量中声明一些东西可能会帮助我得到我需要的东西。
从我的笔记:
var FrameBox = [this.form.property_parent_id6385_6773.value]; //WHICH EQUALS "6765"
var FrameNo = 'this.form.property' + {form_id} + '_' + FrameBox + '.selectedIndex';
结果:
然而,我所寻求的结果的一个例子是:
==============================
总之,我知道我需要什么,但我不太了解语法。
我知道这可能是更好的措辞,但这对我来说都是新的。从好的方面来说,我现在受到启发,可以参加JavaScript课程。
非常感谢任何帮助。
答案 0 :(得分:0)
这更像是一个计算的猜测,但值得一试。
this.form.property_parent_id{form_id}_{property_id}.options[this.form.property_parent_id{form_id}_{property_id}.selectedIndex].text