C# 从webbrowser调用Jquery函数

C# 从webbrowser调用Jquery函数,c#,jquery,C#,Jquery,我正在尝试使用webbrowser从受密码保护的网页获取数据,webbrowser使用一个带有3个JQuery数据字段的div容器。第二个字段取决于第一个字段,第二个字段中的第三个字段。我需要设置这三个组合框,然后点击提交,以获取我想要获取的数据。问题是,一旦第一个组合框发生更改,它就会调用一个函数来填充第二个和第三个框。我不知道如何调用这个函数 这是第一个组合框的外观: 选择s[DCOM1]选择1 我成功地设置了第一个组合框,但是最大的问题是调用viewStep.onSChanged(),它应

我正在尝试使用webbrowser从受密码保护的网页获取数据,webbrowser使用一个带有3个JQuery数据字段的div容器。第二个字段取决于第一个字段,第二个字段中的第三个字段。我需要设置这三个组合框,然后点击提交,以获取我想要获取的数据。问题是,一旦第一个组合框发生更改,它就会调用一个函数来填充第二个和第三个框。我不知道如何调用这个函数

这是第一个组合框的外观:

选择s[DCOM1]选择1

我成功地设置了第一个组合框,但是最大的问题是调用viewStep.onSChanged(),它应该填充第二个框,但我无法让它工作

onSChanged函数位于jqueryjs中。文件

self.onsChanged = function(selectadj) {
    self.viewBasicsUpdated = true;
    log.debug('onsChanged');
    if (self.s) {
        self.adjEnabled = false;
        self.adj = null;
        self.auctionType = 'S';
        controller.ds.getadjList(self.s.id, function(response) {
            controller.applyUpdates(function() {
                self.adjList = response.data;
                // Add "Add adj" option (as first in array).
                self.adjList.unshift({
                    id : ADD_adj_ID,
                    fullName : controller.locale.getMessage('app.label.add.adj')
                });
                self.adjEnabled = true;
                self.standardEnabled = true;
                self.vixEnabled = (StringUtils.trimWS(self.s.vixFlag) === 'Y') ? true : false;
                self.offsiteEnabled = (StringUtils.trimWS(self.s.offsiteFlag) === 'Y') ? true : false;
                self.titOnlyEnabled = (StringUtils.trimWS(self.s.titOnlyFlag) === 'Y') ? true : false;
                self.salType = self.s.salType;

                self.titProcurementFlag = (StringUtils.trimWS(self.s.titProcurmentFlag) === 'Y') ? true : false;

                //Selects the adj when a new adj is added. 
                if(selectadj){
                    angular.forEach(self.adjList, function(object, index) {
                        log.debug("object.id++"+object.id);
                        if(object.id===self.newadjId){
                            self.adj=object;
                            log.debug("self.newadjId++"+object.id);
                        }
                    });
                }
            });
        });
    }else{
        controller.applyUpdates(function() {
            self.adj = null;
            self.adjEnabled = false;
            self.auctionType = 'S';
            self.standardEnabled = false;
            self.vixEnabled = false;
            self.offsiteEnabled = false;
            self.titOnlyEnabled = false;
            self.salType = null;
            self.titProcurementFlag = false;
        });`
    }
};

我曾尝试用许多不同的选项调用该函数,包括invokescript,发布一个与我在Fiddler中看到的相同的post请求(我猜它失败了,因为cookie是不同的),但一切都失败了。是否有执行此函数的方法?

使用Javascript在输入控件上设置值时,DOM事件可能不会触发,具体取决于值的设置方式

在本例中,
self.onsChanged
,而不是尝试执行网页通常会触发的相同功能,而是在更新的控件上触发事件

$("#selectBox1").val("Value A");
$("#selectBox1").change();

我已经反复阅读了你的问题很多次,但我不明白问题是什么,也不明白你的问题是什么。为了清晰起见,您可以重写它,以便我们能够提供更好的帮助吗?我基本上是在一个包含3个动态填充的组合框的面板中设置正确的选择,这会导致我需要废弃的数据,我成功地将第一个组合框设置为我需要的选项,但是我无法调用填充第二个和第三个框的函数,基于对第一个的选择,我最终通过使用HTTPWebRequest、登录到网站并发布一个Ajax调用来解决这个问题。谢谢大家的帮助:)